申请加强数据
  • 板块P1833 樱花
  • 楼主laijingnian
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/8/21 21:02
  • 上次更新2023/11/3 02:08:10
查看原帖
申请加强数据
757432
laijingnian楼主2023/8/21 21:02

看了看题解说是要优化才能过但我直接上裸的多重背包和完全背包就过了 代码:

#include <iostream>

using namespace std;

int hh,mm,hhh,mmm;

int n;
int V;
int dp[10010];

int main()
{
	scanf("%d:%d",&hh,&mm);
	scanf("%d:%d",&hhh,&mmm);
	scanf("%d",&n);
	V = (hhh*60+mmm) - (hh*60+mm);
	for(int i = 1;i <= n;i++)
	{
		int w,v,s;
		cin >> v >> w >> s;
		if(s == 0)
		{
			for(int j = v;j <= V;j++)
			{
				dp[j] = max(dp[j],dp[j-v]+w);
			}
		}
		else
		{
			for(int j = V;j >= 0;j--)
				for(int k = 1;k <= s && k * v <= j;k++)
					dp[j] = max(dp[j],dp[j-k*v]+k*w);
		}
	}
	cout<<dp[V];
	return 0;
}

记录

声明一下我没有开O2, 很抱歉我只是一个大蒟蒻没有提供数据

2023/8/21 21:02
加载中...