求助!
查看原帖
求助!
334041
沉鸣cmh楼主2020/8/28 20:34

为什么WA了8个点

#include<bits/stdc++.h>
using namespace std;
int n,m,a[25],b[25];
long long su[25][25];
long long mi(long long x,long long y){int th=1;
	for(int i=1;i<=y;i++)th*=x;
	return th;
}
long long dfs(int k,int x){long long th=10000000000000;
	if(su[k][x])return su[k][x];if(x==0)return 0;
	if(k==m)th=min(th,a[k]*mi(x,b[k]));
	else for(int i=1;i<=x;i++){
		th=min(th,dfs(k+1,x-i)+a[k]*mi(i,b[k]));
	}
	su[k][x]=th;
	return th;
}
int main(){
	cin>>n>>m;for(int i=1;i<=m;i++)cin>>a[i]>>b[i];
	cout<<dfs(1,n);
	return 0;
}
2020/8/28 20:34
加载中...