B - Piggy-Bank

在acm能够做任何事情之前, 必须编制预算并获得必要的财政支持。这一行动的主要收入来自IBM。这个想法其实很简单,每当一些会员有一点小钱时,他就会把所有的硬币都扔到小猪存钱罐里。这个过程是不可逆转的, 除非打破猪,否则硬币不能拿出来。过了足够长的时间, 存钱罐里应该有足够的现金来支付所有需要支付的费用。

但存钱罐存在很大问题:不可能确定里面有多少钱。所以我们可能敲破猪才发现没有足够的钱。显然, 我们要避免这种不愉快的情况,唯一的可能是称重猪,并试图猜测里面有多少枚硬币。假设我们能够准确地确定猪的重量, 而且我们知道给定货币的所有硬币的重量。然后在存钱罐里有一些最低数量的钱, 我们可以保证。你的任务是找出这个最坏的情况, 并确定在存钱罐内的最低现金金额。

Input

输入由 T组测试用例组成。它们的数量T是在输入文件的第一行给出的。每个测试用例以包含两个整E和 F 的行开头(E和F以克为单位),它们表明了空猪和装满硬币的猪的重量。两个权重都以克为值。任何猪的重量都不会超过10公斤, 这意味着 1 < = E < = F < = 10000。在每个测试用例的第二行, 有一个整数数字 N (1 < = N < = 500), 给出给定货币中使用的各种硬币的数量。下面是 N 行, 每行都指定一种硬币类型。这些行包含两个整数, P, W (1 < = P < = 50000, 1 < = W < = 10000)。P 是硬币的价值, W是它的重量(以克为单位)。

Output

为每个测试用例只打印一行输出。该行必须包含句子 "The minimum amount of money in the piggy-bank is X." 其中 X 是可以实现的最低金额的硬币。如果无法准确达到总重量, 请打印一行 "This is impossible."

Sample Input

3
10 110
2
1 1
30 50
10 110
2
1 1
50 30
1 6
2
10 3
20 4

Sample Output

The minimum amount of money in the piggy-bank is 60.
The minimum amount of money in the piggy-bank is 100.
This is impossible.
解析待更新:首先把dp数组全都初始化为正无穷(dp[0]初始化为0),在用背包思想求dp[f]的最小值,
如果dp[f]还是无穷的话则不可能实现,否则就直接输出dp[f]为最小值

AC代码:
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
inline int read() {int x=,f=;char c=getchar();while(c!='-'&&(c<''||c>''))c=getchar();if(c=='-')f=-,c=getchar();while(c>=''&&c<='')x=x*+c-'',c=getchar();return f*x;}
typedef long long ll;
const int maxn=;
const int M=1e7+;
const int INF=0x3f3f3f3f;
int dp[maxn];
int a[maxn];
int v[maxn];
int w[maxn];
int main()
{
int t,n;
int V,W;
scanf("%d",&t);
while(t--){
memset(dp,INF,sizeof(dp));//初始化为正无穷
scanf("%d%d",&V,&W);
int f=W-V;
scanf("%d",&n);
dp[]=;
for(int i=;i<n;i++){
scanf("%d%d",&v[i],&w[i]);
}
for(int i=;i<n;i++){
for(int j=w[i];j<=f;j++){
dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
}
}
if(dp[f]==INF){
printf("This is impossible.\n");
}
else{
printf("%s %d.\n","The minimum amount of money in the piggy-bank is",dp[f]);
}
}
return ;
}

dp(小猪存钱罐)的更多相关文章

  1. [Poi2005]Piggy Banks小猪存钱罐

    题目描述 Byteazar有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于是要把所有的钱都取 ...

  2. hdu 1114Piggy-Bank(完全背包)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 参考资料: [1]:https://www.cnblogs.com/jbelial/ar ...

  3. K-Piggy-Bank

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  4. [BZOJ1529][POI2005]ska Piggy banks

    [BZOJ1529][POI2005]ska Piggy banks 试题描述 Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个存钱罐的钥匙放 ...

  5. BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )

    每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数 ------------------------------------------------------------------- ...

  6. [POI2005] SKA-Piggy Banks

    ps.有关Tarjan算法缩点的简要回顾. 今天上午在Luogu随机到了这道题 Luogu P3420,题目大概是这样: 题目描述 Byteazar the Dragon拥有N个小猪存钱罐.每一个存钱 ...

  7. 【BZOJ1529】[POI2005]ska Piggy banks Tarjan

    [BZOJ1529][POI2005]ska Piggy banks Description Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个 ...

  8. bzoj1529 [POI2005]ska Piggy banks 并查集

    [POI2005]ska Piggy banks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1508  Solved: 763[Submit][Sta ...

  9. Taran 缩点【bzoj1529】[POI2005]ska Piggy banks

    [bzoj1529][POI2005]ska Piggy banks Description Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个 ...

随机推荐

  1. FPM 0.08不能运行破解办法……

    FPM_0.080.rar 破解办法:用UltraEdit打开FPM.exe,查找"33 C0 E9 F2"(注意中间有空格)将33改为8B,F2改为00

  2. Spring事务之传播机制

    Spring事务传播机制:Spring在TransactionDefinition接口中规定了种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套时事务如何进行传播.即协调已经有事务标识的方法之 ...

  3. ASP.NET + MVC5 入门完整教程四---MVC 中使用扩展方法

    https://blog.csdn.net/qq_21419015/article/details/80433640 1.示例项目准备1)项目创建新建一个项目,命名为LanguageFeatures ...

  4. Java:面向对象的编程语言

    java是面向对象的编程语言 Object,就是指面向对象的对象,对象就是实例. 在java里,对象是类的一个具体实例.就像:人,指一个类.你.我.他.张三.李四.王五等则是一个个具体的实例,也就是j ...

  5. python call perl

    import subprocess subprocess.call("csv_gen.pl -by overall", shell=True)

  6. 在一个formitem中多input的验证方法-antd的验证

    实现效果如下: 当点击按钮的时候 对一个FormItem里的多个input/或者是input和select进行校验  同时通过Rol/Col实现布局 Rselect/input组件封装的组件如下fie ...

  7. resize2fs: 报错

    报错如下 [root@localhost ~]# resize2fs /dev/mapper/centos-root resize2fs (-Dec-) resize2fs: Bad magic nu ...

  8. 安装rocky版本:openstack-nova-compute.service 计算节点服务无法启动

    问题描述:进行openstack的rocky版本的安装时,计算节点安装openstack-nova-compute找不到包. 解决办法:本次实验我安装的rocky版本的openstack 先安装cen ...

  9. awk从放弃到入门(3):awk变量

    一.变量概述 对于awk来说"变量"又分为"内置变量" 和 "自定义变量" , "输入分隔符FS"和"输出分隔 ...

  10. 动态设置微信小程序 navigationBarTitle 的值

    wx.setNavigationBarTitle({ title:' 动态值 ' })