这样转移状态有什么问题
  • 板块P1833 樱花
  • 楼主Amoribus
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/24 16:10
  • 上次更新2024/10/24 18:29:02
查看原帖
这样转移状态有什么问题
935976
Amoribus楼主2024/10/24 16:10

RT,WA了

#include<bits/stdc++.h>
using namespace std;
#define int long long
string s1,s2;
int sh,sm,eh,em;
int m,n;
int t[10009],c[10009],p[10009];
int dp[2][1009];
signed main()
{
	cin>>s1>>s2;
	sscanf(s1.c_str(),"%d:%d",&sh,&sm);
	sscanf(s2.c_str(),"%d:%d",&eh,&em);
	m=(eh-sh)*60+em-sm;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>t[i]>>c[i]>>p[i];
	}
	for(int i=1;i<=n;i++){
		if(p[i]==0){
			for(int j=0;j<=m;j++){
				if(j>=t[i])
				dp[i%2][j]=max(dp[i%2][j],dp[i%2][j-t[i]]+c[i]);
			}
		} 
		else{
			for(int k=0;k<=p[i];k++){
				for(int j=0;j<=m;j++){
					if(j>=k*t[i])
					dp[i%2][j]=max(dp[i%2][j],dp[(i-1)%2][j-k*t[i]]+k*c[i]); 
				}
			}
		}
	}
	cout<<dp[n%2][m]<<endl;
	return 0;
}
2024/10/24 16:10
加载中...