???
查看原帖
???
536191
__Shao__楼主2023/2/21 16:32

80分,附一错误点数据,正确答案为2055。

#include<bits/stdc++.h>
using namespace std;
#define rt register int 
#define inf 0x3f3f3f3f
struct wen{
	int a,b;
}w[25];
int n,m;
long long f[25][205];
long long work(int a,int b,int k){
	long long res=1;
	while(b){
		res*=k;
		--b;
	} 
	return res;
} 
int main()
{
	ios::sync_with_stdio(false);
	cin>>n>>m;
	for(rt i=1;i<=m;++i)cin>>w[i].a>>w[i].b;
	for(rt i=0;i<=m;++i)
		for(rt j=0;j<=n;++j)
			f[i][j]=inf;
	f[0][0]=0;
	for(rt i=1;i<=m;++i)
	{
		for(rt j=1;j<=n;++j)
		{
			f[i][j]=min(f[i-1][j],f[i][j]);
			for(rt k=0;k<=j;++k){
				f[i][j]=min(f[i][j],f[i-1][j-k]+w[i].a*work(w[i].a,w[i].b,k));
			}
//			printf("f[%d][%d]=%lld\n",i,j,f[i][j]);	
		}
	}
	cout<<f[m][n]<<endl;
	return 0;
}
/*
50 10
52 3
92 4
55 5
30 4
19 4
42 2
4 5
25 4
43 1
49 1
*/
2023/2/21 16:32
加载中...