80求助!
  • 板块P1833 樱花
  • 楼主chen_kun
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/16 19:23
  • 上次更新2024/4/16 19:26:32
查看原帖
80求助!
469311
chen_kun楼主2024/4/16 19:23

用二进制优化做的,WA了最后两个点,实在看不出来哪里有问题

#include<bits/stdc++.h>
using namespace std;
long long t,e,m1,p,n,m,v[11111],w[11111],s,f[11111],ww,vv,cnt;
char temp;
int main(){
	cin>>t>>temp>>e;
	cin>>m1>>temp>>p;
	cin>>n;
	m=(m1-t)*60+(p-e);
	for(long long i=1;i<=n;i++){
		cin>>ww>>vv>>s;
		if(s==0) s=m/ww;
		for(long long j=1;j<=s;j*=2){
			w[++cnt]=j*ww;
			v[cnt]=j*vv;
			s-=j;
		}
		if(s>0) w[++cnt]=s*ww,v[cnt]=s*vv;
	}
	for(long long i=1;i<=cnt;i++) for(long long j=m;j>=w[i];j--) f[j]=max(f[j],f[j-w[i]]+v[i]);
	cout<<f[m];
	return 0;
}
2024/4/16 19:23
加载中...