社区讨论

这样转移状态有什么问题

P1833樱花参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m2n0y6p2
此快照首次捕获于
2024/10/24 16:11
去年
此快照最后确认于
2025/11/04 16:20
4 个月前
查看原帖
RT,WA了
CPP
#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;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...