洛谷P1853 投资的最大效益

点击跳转了解题意

很明显的完全背包问题,对于每年之后的最大收益,更新一下总资产,再做完全背包,直到第n年为止。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<algorithm>
 5 
 6 using namespace std;
 7 
 8 int dp[10000005],w[50],c[50];
 9 int s,n,d;
10 int maxin;
11 
12 int main()
13 {
14     scanf("%d%d%d",&s,&n,&d);
15     for(int i=1;i<=d;i++)
16         scanf("%d%d",&w[i],&c[i]);
17     for(int i=1;i<=n;i++)
18     {
19         for(int j=1;j<=d;j++)
20             for(int v=w[j];v<=s;v++)
21                 dp[v]=max(dp[v],dp[v-w[j]]+c[j]);
22         s+=dp[s];
23     }
24     printf("%d",s);
25     return 0;
26 } 
原文地址:https://www.cnblogs.com/Hoyoak/p/11375180.html