10分求助
  • 板块P1833 樱花
  • 楼主Huyh12
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/19 15:08
  • 上次更新2023/10/24 03:37:00
查看原帖
10分求助
765280
Huyh12楼主2023/1/19 15:08
#include<bits/stdc++.h>
using namespace std;
int w[10010]= {0},v[10010]= {0},s[10010]= {0};
int f[10010]= {0},nx,ny,ex,ey;
int main() {
	int n,m;
	scanf("%d:%d%d:%d%d",&nx,&ny,&ex,&ey,&n);
	m=(ex*60+ey)-(nx*60+ny);
	for(int i=1; i<=n; i++)
		cin>>v[i]>>w[i]>>s[i];
	for(int i=1; i<=n; i++)
		if(s[i]!=0)
			for(int j=m; j>=0; j--)
				for(int k=0; k<=s[i]; k++) {
					if(j>=v[i]*k)
						f[j]=max(f[j-v[i]*k]+k*w[i],f[j]);
				}
		else
			for(int j=w[i]; j<=m; j++)
				f[j]=max(f[j-w[i]]+v[i],f[j]);

	cout<<f[m]<<endl;
	return 0;
}
2023/1/19 15:08
加载中...