(完全背包)洛谷P1853投资的最大效益

洛谷P1853投资的最大效益

思路:

完全背包,用dp[i]表示本金为i时下一年获得的收益,每年再把本金加上收益就好了。

代码:

#include
const int N=1e7+10;
const int mod=1e7+9;
const int maxn=0x3f3f3f3f;
const int minn=0xc0c0c0c0;
const int inf=99999999;
using namespace std;
int w[50],v[50],dp[N]={0};
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int s,n,d,i,j,k;
	cin>>s>>n>>d;
	for(i=1;i<=d;i++)
		cin>>w[i]>>v[i];
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=d;j++)
			for(k=w[j];k<=s;k++)
				dp[k]=max(dp[k],dp[k-w[j]]+v[j]);
		s+=dp[s];
	}
	cout<<s<<endl;			
	return 0;
}

你可能感兴趣的:(基础算法,#,dp)