P1833求助
  • 板块学术版
  • 楼主54zyd
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/24 20:13
  • 上次更新2025/1/25 00:19:46
查看原帖
P1833求助
1353816
54zyd楼主2025/1/24 20:13
#include<bits/stdc++.h>
using namespace std;
int n,s,t[100010],c[100010],p[100010],k,f[100010];
int main(){
	string q,w;
	cin>>q>>w;
	s+=(w[0]-q[0])*60+(w[2]-q[2])*10+(w[3]-q[3]);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int t1,c1,p1;
		scanf("%d%d%d",&t1,&c1,&p1);
		if(p1==0){
			p1=s/t1;
		}
		int j=1;
		while(p1>=j){
			t[++k]=t1*j;
			c[k]=c1*j;
			p1-=j;
			j*=2;
		}
		if(p1){
			t[++k]=t1*p1;
			c[k]=c1*p1;
		}
	}
//	for(int i=1;i<=k;i++){
//		printf("%d %d\n",t[i],c[i]);
//	}
	for(int i=1;i<=k;i++){
		for(int j=n;j>=t[i];j--){
			f[j]=max(f[j],f[j-t[i]]+c[i]);
		}
	}
	printf("%d",f[n]);
	return 0;
}
2025/1/24 20:13
加载中...