1 条题解
-
0
题目大意:有一个背包大小为E,现在只能装满F,问剩余的空间用一些,价值为p,质量为w的硬币装满,问最后装满之后用的硬币总价值是多少。
#include<iostream> #include<cstring> using namespace std; const int N = 10010; int dp[N]; int main() { int T;cin>>T; while(T--) { memset(dp,0x3f,sizeof dp); int e,f;cin>>e>>f; int h=f-e; int n;cin>>n; dp[0]=0; for(int i=1;i<=n;i++) { int p,w;cin>>p>>w; for(int j=w;j<=h;j++) dp[j]=min(dp[j],dp[j-w]+p); } if(dp[h]==0x3f3f3f3f) cout<<"This is impossible."<<endl; else cout<<"The minimum amount of money in the piggy-bank is "<<dp[h]<<"."<<endl; } return 0; }
- 1
信息
- ID
- 385
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者