求助:1WA1TLE
查看原帖
求助:1WA1TLE
298476
Sangreal_Knight楼主2020/12/2 18:11

1WA1TLE

code:

#include<bits/stdc++.h>
using namespace std;
string Tstart,Tend;
#define ll long long
ll n,T,nn;
ll w[800501],c[800501],num[800501],f[800501];
inline ll inti(string a,ll len){
	ll k1,k2;
	for(int i=1;i<=len;i++){
		if(a[i-1]==':'){
			if(i==2){
				k1=a[0]*60;
				k2=a[2]*10+a[3];
				break;
			}
			if(i==3){
				k1=(a[0]*10+a[1])*60;
				k2=a[3]*10+a[4];
				break;
			}
		}
	}
//	cout<<k2+k1<<endl;
	return k2+k1;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>Tstart>>Tend;
	ll start=inti(Tstart,Tstart.length());
	ll end=inti(Tend,Tend.length());
	T=(end-start);
	//cout<<T<<endl;
	memset(f,0,sizeof(f));
	cin>>n;
	int x,y,z;
	for(int i=1;i<=n;i++){
		cin>>x>>y>>z;
		ll t=1;
		if(!z) z=1e7;
		while(z>=t){
			w[++nn]=x*t;
			c[nn]=y*t;
			z-=t;
			t=t<<1;}
			w[++nn]=x*z;
			c[nn]=y*z;
		}
	for(int i=1;i<=nn;i++)
		for(int j=T;j>=w[i];j--)
			f[j]=max(f[j],f[j-w[i]]+c[i]);
	cout<<f[T];
	return 0;
}
/*
6:50 7:00 3
2 1 0
3 3 1
4 5 4
*/

求救

2020/12/2 18:11
加载中...