求助,最后一个点为什么过不了啊
  • 板块P1833 樱花
  • 楼主Palpitat
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/2/11 18:32
  • 上次更新2023/10/28 08:52:05
查看原帖
求助,最后一个点为什么过不了啊
678674
Palpitat楼主2022/2/11 18:32
#include<bits/stdc++.h>
using namespace std;
const int maxn=10000;
int wei[maxn],weal[maxn],type[maxn],f[maxn],n;
int main()
{   int sq,sh,eq,eh;
	scanf("%d:%d %d:%d",&sq,&sh,&eq,&eh);
	int m=(eq-sq)*60+(eh-sh);
	cin>>n;
	for(int i=1;i<=n;i++) 
		cin>>wei[i]>>weal[i]>>type[i];
	for(int i=1;i<=n;i++){
		if(type[i]==0){
			for(int j=wei[i];j<=m;j++){
				f[j]=max(f[j],f[j-wei[i]]+weal[i]);
			}
		}
		else {
			for(int j=m;j>=wei[i];j--)
                for(int k=1;k<=type[i];k++)
                    if(j-k*wei[i]>=0)
                        f[j]=max(f[j],f[j-k*wei[i]]+k*weal[i]);
		}
	}
	cout<<f[m];			  
}
2022/2/11 18:32
加载中...