洛谷P3027 [USACO10OCT]赚钱Making Money 题解

M y <mtext>   </mtext> b l o g My\ blog My blog

solution:

完全背包的好题。

每次的价值是利润(r-c),花费是c

然后套板子就行了

#include<cstdio>
#include<algorithm>
using namespace std;
int f[100005],a[105],c[105];
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		int r;
		scanf("%d%d",&c[i],&r);
		a[i]=r-c[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=c[i];j<=m;j++)
		{
			f[j]=max(f[j],f[j-c[i]]+a[i]);
		}
	}
	int ans=0;
	for(int i=1;i<=m;i++)
	{
		ans=max(ans,f[i]-i+m);
	}
	printf("%d\n",ans);
	return 0;
} 
全部评论

相关推荐

牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
牛客40297450...:不是研究生强,是你强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务