题解,有缩进直接复制版
2025-08-05 10:55:35
发布于:浙江
16阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int h1,m1,h2,m2,n,m,w,c,p,dp[10007];
int main(){
scanf("%d:%d %d:%d %d",&h1,&m1,&h2,&m2,&n);
m=(h2-h1)*60-m1+m2;
for(int i=1;i<=n;i++){
cin>>w>>c>>p;
if(p==0||p*w>=m)
for(int j=w;j<=m;j++)
dp[j]=max(dp[j],dp[j-w]+c);
else if(p==1)
for(int j=m;j>=w;j--)
dp[j]=max(dp[j],dp[j-w]+c);
else{
for(int k=1;p;k<<=1){
int x=min(k,p);
for(int j=m;j>=w*x;j--)
dp[j]=max(dp[j],dp[j-w*x]+c*x);
p-=x;
}
}
}
cout<<dp[m];
}
全部评论 3
太有用了太棒了
2025-08-05 来自 浙江
12025-08-05 来自 浙江
1我是乐子
2025-08-05 来自 浙江
1
有帮助,赞一个