POJ 1384 Piggy-Bank
来源:互联网 发布:南京生活频道 网络直播 编辑:程序博客网 时间:2024/05/18 20:45
题意:题目的意思是有一个储蓄罐,里面放了硬币,只知道储蓄罐装了硬币和没装硬币时的重量,并且知道每种面值硬币的重量。现在要求储蓄罐中可能的最小金额。若储蓄罐中硬币的重量和每种面值硬币的重量不能匹配,则输出impossible。
分析:典型的完全背包,注意初始化。。
//216K79MS#include <cstdio>#include <cstring>#include <iostream>#define MIN(A,B) ((A)<(B)?(A):(B))#define Size_MAX 10001#define N 505#define MAX 10000000int dp[Size_MAX] ;int weight[N] ;int val[N] ;using namespace std ;voidCompletePack ( int const profit , int const cost , int const v ) //完全背包//profit代表每种钱币的价值(value),cost代表每种钱币的花费(weight)v ,是钱罐可容纳的最大重量{ for ( int i = cost ; i <= v ; i ++ ) { dp[i] = MIN ( dp[i] , dp[i-cost] + profit ) ; }}voidInit_DP ( ){ for ( int i = 0 ; i < Size_MAX ; i ++ ) { dp[i] = MAX ; } dp[0] = 0 ; //注意完全背包初始化的这个细节}voidSolve ( int const kinds , int const v ) // kinds是钱的种类,v 是钱罐可容纳的最大重量{ for ( int i = 1 ; i <= kinds ; i ++ ) { CompletePack ( val[i] , weight[i] , v ) ; } if ( MAX != dp[v] ) { printf("The minimum amount of money in the piggy-bank is %d.\n",dp[v]) ; } else { printf("This is impossible.\n") ; } return ;}intmain ( ){ int n ; scanf ("%d" , & n ) ; while ( n -- ) { int e , f ; // e 代表钱罐empty时的重量,f 代表钱罐装满时的最大重量 scanf ("%d%d" , & e , & f ) ; int v ; // volume v = f - e ; Init_DP ( ) ; int kinds ; scanf ("%d" , & kinds ) ; for ( int i = 1 ; i <= kinds ; i ++ ) { scanf ("%d%d" , & val[i] , & weight[i] ) ; } Solve ( kinds , v ) ; } return 0 ;}
- poj 1384 Piggy-Bank
- poj 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- poj 1384 piggy-bank
- POJ 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- poj 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- poj 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- POJ 1384 Piggy-Bank
- POJ 1384 Piggy-Bank DP
- POJ 1384 Piggy-Bank 笔记
- POJ 1384 Piggy-Bank (ZOJ 2014 Piggy-Bank) 完全背包
- poj 1384 Piggy-Bank 完全背包
- poj 1384Piggy-Bank(完全背包)
- POJ 1384 Piggy-Bank (完全背包)
- Web页面切图和CSS注意事项
- stm32f4驱动enc28j60(吐槽篇)
- VC版的贪吃蛇游戏
- uboot
- 简洁的bash编程技巧
- POJ 1384 Piggy-Bank
- 四点求距离最小
- 读懂diff文档
- 电脑信息查看命令
- 动态设置 UITextField
- 图论难题
- 使用Visual Studio 2010编译WebKit
- 英文词频分析器
- 学习java并发编程实战的一些心得体会(二)