zoukankan      html  css  js  c++  java
  • hdu 1114 Piggy-Bank

    求最高价值:必须准确填写背包,时除了dp[0]为0其他dp[1..V]均设为-∞  
      
    求最小价值:要求恰好装满背包,那么在初始化时除了dp[0]为0其他dp[1..V]均设为∞

    注意事项:题目要求要“恰好装满”,所以初始化时。除dp[0]赋值为零外其他的dp[i]都赋值为+∞。由于题目是求最小值。若为求最大值,则dp[i]都赋值为-∞;求最大值中若没有限定则都赋值为0。注意两种问法的不同;


    代码例如以下:  

    注意下标问题
    #include<stdio.h>
    int p[1008],w[1008];
    int dp[10000];
    int min(int a,int b)
    {return a>b?b:a;}
    int main()
    {
       int E,F,V,T,i,j,N;
       scanf("%d",&T);
       while(T--)
       {
          scanf("%d%d",&E,&F);
          V=F-E;
          for(i=0;i<=V;i++)
          dp[i]=9999999;
          dp[0]=0;
          scanf("%d",&N);
         for(i=0;i<N;i++)
          scanf("%d%d",&p[i],&w[i]);
         
          for(i=0;i<N;i++)
            for(j=w[i];j<=V;j++)
             dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
          if(dp[V]==9999999)printf("This is impossible.
    ");
          else
            printf("The minimum amount of money in the piggy-bank is %d.
    ", dp[V]);  
       }
        return 0;
    }
    


  • 相关阅读:
    剑指offer 面试26题
    剑指offer 面试25题
    剑指offer 面试24题
    剑指offer 面试23题
    剑指offer 面试22题
    剑指offer 面试19题
    剑指offer 面试20题
    剑指offer 面试21题
    剑指offer 面试18题
    剑指offer 面试17题
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4591679.html
Copyright © 2011-2022 走看看