社区讨论
20pts求助
P1833樱花参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m2ae622f
- 此快照首次捕获于
- 2024/10/15 20:00 去年
- 此快照最后确认于
- 2025/11/04 17:07 4 个月前
想着在读入的时候直接处理不用开数组了结果写脱了zz
CPP#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
string s1,s2;
int n,V;
int T,C,P;
int dp[2005];
int compute(string s)
{
int cnt1=0,cnt2=0;
bool sec=0;
for(int i=0,m=1;i<s.size();i++)
{
if(s[i]==':') cnt1*=60,m=1,sec=1;
else if(!sec){
cnt1+=(s[i]-'0');
cnt1*=m;
m*=10;
}
else{
cnt2+=(s[i]-'0');
cnt2*=m;
m*=10;
}
}
return cnt1+cnt2;
}
int main()
{
cin>>s1>>s2>>n;
V=compute(s2)-compute(s1);
int wei,val;
while(n--)
{
cin>>T>>C>>P;
if(P==0) P=5000;
for(int k=1;k<=P;k<<=1)
{
wei=k*T;
val=k*C;
for(int j=V;j-wei>=0;j--)
dp[j]=max(dp[j],dp[j-wei]+val);
P-=k;
}
if(P!=0)
{
wei=P*T;
val=P*C;
for(int j=V;j-wei>=0;j--)
dp[j]=max(dp[j],dp[j-wei]+val);
}
}
cout<<dp[V];
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...