Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
146152 | 杨博煊 | 收益 | C++ | 解答错误 | 20 | 7 MS | 4164 KB | 551 | 2024-05-08 13:13:09 |
#include<bits/stdc++.h> using namespace std; int a,b,c,x[1000005],y[1000005],f[1000005],k,p; int main(){ cin>>p; for(k = 1;k <= p;k++){ cin>>a>>b>>c; for(int i=1;i<=c;i++)cin>>x[i]>>y[i]; for(int k=1;k<=b;k++) { memset(f,0,sizeof(f));//将dp数组清零 for(int i=1;i<=c;i++) { for(int j=x[i]/1000;j<=a/1000;j++) { f[j]=max(f[j],f[j-x[i]/1000]+y[i]);//状态转移方程 } } a+=f[a/1000]; } cout<<a; } return 0; }