zoukankan      html  css  js  c++  java
  • hdu 1114

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=1114

    题意:小盆友通过往猪猪存钱罐里放钱的方式攒钱做事。存钱罐除非砸坏,否则无法把钱取出。为了知道是否攒了足够的钱,对存钱罐称重。然后告诉每种钱币的重量和价值,问存钱罐里最少可能有多少钱。

    mark:算是一个比较裸的完全背包问题。只不过是选最小。

    代码:

     1 # include <stdio.h>
     2 # include <string.h>
     3 
     4 
     5 int n, m, INF = 0x3f3f3f3f ;
     6 int p[510], w[510] ;
     7 int dp[10010] ;
     8 
     9 
    10 int min(int a, int b){return a<b?a:b;}
    11 
    12 
    13 void work()
    14 {
    15     int i, j ;
    16     memset (dp, 0x3f, sizeof(dp)) ;
    17     dp[0] = 0 ;
    18     for (i = 0 ; i < n ; i++)
    19         for (j = w[i] ; j <= m ; j++)
    20             dp[j] = min(dp[j], dp[j-w[i]]+p[i]) ;
    21     if (dp[m] == INF) puts ("This is impossible.") ;
    22     else printf ("The minimum amount of money in the piggy-bank is %d.
    ", dp[m]) ;
    23 }
    24 
    25 
    26 int main ()
    27 {
    28     int T, e, f, i ;
    29     scanf ("%d", &T) ;
    30     while (T--)
    31     {
    32         scanf ("%d%d", &e, &f) ;
    33         m = f-e ;
    34         scanf ("%d", &n) ;
    35         for (i = 0 ; i < n ; i++)
    36             scanf ("%d%d", &p[i], &w[i]) ;
    37         work() ;
    38     }
    39     return 0 ;
    40 }
  • 相关阅读:
    LeetCode 48 Anagrams
    大数据实时处理:百分点实时计算架构和算法
    Kafka操作
    Kafka
    批量扫描互联网无线路由设备telnet,并获取WIFI密码
    WMI
    openvas
    原始套接字
    Zabbix
    MySQL exist
  • 原文地址:https://www.cnblogs.com/lzsz1212/p/3280241.html
Copyright © 2011-2022 走看看