DP40分WA求调
查看原帖
DP40分WA求调
778975
QAQ_YTH楼主2023/11/21 22:12

rt

#include<bits/stdc++.h>
using namespace std;
long long int n,m,a,b,f[501][501],add[501][501];
long long int pow(int x,int y){
	long long ans=1;
	for(int i=1;i<=y;i++)ans*=x;
	return ans;
}
int main(){
	scanf("%lld%lld",&n,&m);
	memset(f,0x7f,sizeof(f));
	for(int i=1;i<=m;i++){
		scanf("%lld%lld",&a,&b);
		add[i][0]=a;
		for(int j=1;j<=n;j++){
			add[i][j]=a*pow(j,b);
		}
	}
	for(int i=1;i<=m;i++)f[i][0]=0;
	f[0][0]=0;
	
	for(int i=1;i<=m;i++){
		for(int j=0;j<=n;j++){
			for(int k=0;k<=j;k++){
				f[i][j]=min(f[i][j],f[i-1][k]+add[i][j-k]);
			}
		}
	}
	long long int ans=1e9;
	for(int i=1;i<=m;i++)ans=min(ans,f[i][n]);
	printf("%lld",ans);
	return 0;
}
2023/11/21 22:12
加载中...