社区讨论

不懂的地方

P1833樱花参与者 3已保存回复 7

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@mhj902if
此快照首次捕获于
2025/11/03 22:41
4 个月前
此快照最后确认于
2025/11/03 22:41
4 个月前
查看原帖
code1:
CPP
#include<bits/stdc++.h>
using namespace std;
const int N = 10010;
int dp[1010];
struct tree{
	int t,c,p;
}a[N];
int main(){
	int h1,t1,h2,t2;
	char q;
	cin>>h1>>q>>t1>>h2>>q>>t2;
	int time = (h2-h1)*60+t2-t1;
	//cout<<time<<endl;
	int n;
	cin>>n;
	for(int i = 1;i<=n;i++)cin>>a[i].t>>a[i].c>>a[i].p;
	for(int i = 1;i<=n;i++){
		if(a[i].p==0){
			for(int j = a[i].t;j<=time;j++){
				dp[j] = max(dp[j],dp[j-a[i].t]+a[i].c);
			}
		}
		else{
			for(int q = 1;q<=a[i].p;q++){
				for(int j = time;j>=a[i].t;j--){
					dp[j] = max(dp[j],dp[j-a[i].t]+a[i].c);
				}
			}
		}
	}
	int maxn = -1;
	for(int i = 0;i<=time;i++){
		maxn = max(maxn,dp[i]);
	}
	cout<<maxn;
	return 0;
} 
code2:
CPP
#include<bits/stdc++.h>
using namespace std;
const int N = 10010;
int dp[1010];
struct tree{
	int t,c,p;
}a[N];
int main(){
	int h1,t1,h2,t2;
	char q;
	cin>>h1>>q>>t1>>h2>>q>>t2;
	int time = (h2-h1)*60+t2-t1;
	//cout<<time<<endl;
	int n;
	cin>>n;
	for(int i = 1;i<=n;i++)cin>>a[i].t>>a[i].c>>a[i].p;
	for(int i = 1;i<=n;i++){
		if(a[i].p==0){
			for(int j = a[i].t;j<=time;j++){
				dp[j] = max(dp[j],dp[j-a[i].t]+a[i].c);
			}
		}
		else{
			for(int q = 1;q<=a[i].p;q++){
				for(int j = time;j>=q*a[i].t;j--){
					dp[j] = max(dp[j],dp[j-q*a[i].t]+q*a[i].c);
				}
			}
		}
	}
	int maxn = -1;
	for(int i = 0;i<=time;i++){
		maxn = max(maxn,dp[i]);
	}
	cout<<maxn;
	return 0;
} 
code1过了,code2 40分,请问code2到底哪里有问题

回复

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

正在加载回复...