[2016-03-27][HDU][1114][Piggy-Bank]

  • 时间:2016-03-27 16:37:56 星期日

  • 题目编号:[2016-03-27][HDU][1114][Piggy-Bank]

  • 遇到的问题:注意f == e的情况,即dp[0] = 0;

  1. #include <cstring>
  2. #include <cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. int dp[10000 + 10];
  6. int w[500 + 10],c[500 + 10];
  7. int main(){
  8. int t;
  9. scanf("%d",&t);
  10. while(t--){
  11. int e,f,n;
  12. scanf("%d%d%d",&e,&f,&n);
  13. for(int i = 0;i < n;++i){
  14. scanf("%d%d",&w[i],&c[i]);
  15. }
  16. memset(dp,0x7f,sizeof(dp));
  17. dp[0] = 0;
  18. for(int i = 0;i < n;++i){
  19. for(int v = c[i];v <= f - e;++v){
  20. dp[v] = min(dp[v] , dp[v - c[i]] + w[i]);
  21. }
  22. }
  23. if(dp[f - e] == 0x7f7f7f7f) puts("This is impossible.");
  24. else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[f - e]);
  25. }
  26. return 0;
  27. }


来自为知笔记(Wiz)


posted on 2016-04-01 21:52  红洋  阅读(134)  评论(0)    收藏  举报

导航