社区讨论
80分求助,最后2个点没过
P1833樱花参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo8ir0f9
- 此快照首次捕获于
- 2023/10/27 19:17 2 年前
- 此快照最后确认于
- 2023/10/27 19:17 2 年前
#include<bits/stdc++.h>
using namespace std; const int N=11000;
int c[N],t[N],p[N],dp[N];int main(){
char s1[10],s2[10]; int n,m; cin>>s1>>s2>>n;
m=((int)s2[0]-(int)s1[0])*60+((int)s2[2]-(int)s1[2])*10+(int)s2[3]-(int)s1[3];
for(int i=1;i<=n;i++) {
cin>>t[i]>>c[i]>>p[i]; } for(int i=1;i<=n;i++) { int res=p[i];if(p[i]>0){
for(int k=1;res-k>=0;k*=2) { res-=k; for(int j=m;j>=k*t[i];j--){ dp[j]=max(dp[j],dp[j-k*t[i]]+k*c[i]);} } for(int j=m;j>=res*t[i];j--) {
dp[j]=max(dp[j],dp[j-res*t[i]]+res*c[i]);} } else for(int j=t[i];j<=m;j++) {dp[j]=max(dp[j],dp[j-t[i]]+c[i]);
} } cout<<dp[m];}回复
共 3 条回复,欢迎继续交流。
正在加载回复...