全RE求调!!
  • 板块P1833 樱花
  • 楼主Memory_Lin
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/1/31 00:20
  • 上次更新2023/10/24 02:27:50
查看原帖
全RE求调!!
705081
Memory_Lin楼主2023/1/31 00:20

样例,以及第一个测试点测出来都是对的,但是结果显示全RE,求dalao回复orz

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
const int M=1e3+10;
char a[10],b[10];
int n,dt,cnt,v[N],w[N],f[M];
inline int tt(char a[]){
	int lena=strlen(a),k,t1,t2;
	for(k=0;k<lena;k++){
		if(a[k]==':') break; 
		t1=t1*10+(a[k]-'0');
	}
	t1*=60;
	for(int i=k+1;i<lena;i++){
		t2=t2*10+(a[i]-'0');
	}
	return t1+t2;
}
int main()
{
	scanf("%s %s %d",&a,&b,&n);
	dt=tt(b)-tt(a);
	for(int i=1;i<=n;i++){
		int x,y,z;scanf("%d%d%d",&x,&y,&z);
		if(z==0){
			for(int j=0;j<=dt;j++){
				if(j>=x) f[j]=max(f[j],f[j-x]+y);
			}
		}else{
			int k=1;
			while(z>=k){
				v[++cnt]=x*k;
				w[cnt]=y*k;
				z-=k;k*=2;
			}
			if(z>0){
				v[++cnt]=x*z;
				w[cnt]=y*z;
			}
		}
		for(int j=1;j<=cnt;j++){
			for(int k=dt;k>=0;k--){
				if(k>=v[j]) f[k]=max(f[k],f[k-v[j]]+w[j]);
			}
		}
		memset(v,0,sizeof(v));
		memset(w,0,sizeof(w));
		cnt=0; 
	}
	printf("%d\n",f[dt]);
    return 0;
}

2023/1/31 00:20
加载中...