洛谷 P1853 投资的最大效益

题目传送门

解题思路:

额.跑n遍完全背包,好像是的

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 
 5 using namespace std;
 6 
 7 int s,d,n,c[11],w[11],tot,f[2500001],ans;
 8 
 9 int main() {
10     scanf("%d%d%d",&s,&n,&d);
11     for(int i = 1;i <= d; i++)
12         scanf("%d%d",&w[i],&c[i]);
13     while(n--) {
14         memset(f,0,sizeof(f));
15         for(int i = 1;i <= d; i++)
16             for(int j = w[i];j <= s; j += 1000)//这里加1000就行,因为题目里说了w[i]为1000的倍数 
17                 f[j] = max(f[j],f[j-w[i]] + c[i]),ans = max(ans,f[j]);
18         s = ans + s;
19     }
20     printf("%d",s);
21     return 0;
22 }
原文地址:https://www.cnblogs.com/lipeiyi520/p/12386802.html