POJ1742Coins
题目:http://poj.org/problem?id=1742
可以正常地多重背包。但是看了《算法竞赛入门经典》,收获了贪心的好方法。
因为这里只需知道是否可行,不需更新出最优值之类的,所以:
新出来一个可行的必然是只有用了当前面值才可行的,就记录下使它可行最少用多少个当前面值,以资后续限制在 c [ i ] 个以内。
use 数组每次清零,只记当前面值用了几个就行。
之所以正常多重背包不能这样,是因为当前体积要不要通过若干个当前物品来更新与体积为 j - a [ i ] 时 有无用/用了几个 当前物品没有必然联系;
这里之所以有联系,是因为当前体积若想“可行”,必须通过“使用当前面积”。这个“必须”提供了贪心优化的空间。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,a[],c[],use[],ans;
bool b[];
int main()
{
while()
{
scanf("%d%d",&n,&m);
if(!n&&!m)return ;
memset(b,,sizeof b);
ans=;b[]=; /////b[0]=1
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(int i=;i<=n;i++)
scanf("%d",&c[i]);
for(int i=;i<=n;i++)
{
memset(use,,sizeof use);
for(int j=a[i];j<=m;j++)
if(!b[j]&&b[j-a[i]]&&use[j-a[i]]<c[i])
{
b[j]=;use[j]=use[j-a[i]]+;ans++;
}
}
printf("%d\n",ans);
}
}
POJ1742Coins的更多相关文章
- POJ1742Coins(并不理解是什么意思)
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 32309 Accepted: 10986 Descripti ...
- POJ1742----Coins
背包专题:http://www.cnblogs.com/qq188380780/p/6409474.html //多重背包 #include<cstdio> ],a[][]; int Ro ...
- POJ1742Coins(多重背包)
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 32309 Accepted: 10986 Descripti ...
- POJ1742--Coins(动态规划)
People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar.One day Tony ...
- poj1742Coins(多重背包)
People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar.One day Tony ...
- POJ_1742_Coins_(动态规划,多重部分和)
描述 http://poj.org/problem?id=1742 n种不同面额的硬币 ai ,每种各 mi 个,判断可以从这些数字值中选出若干使它们组成的面额恰好为 k 的 k 的个数. 原型: n ...
- POJ 1742 Coins(多重背包) DP
参考:http://www.hankcs.com/program/cpp/poj-1742-coins.html 题意:给你n种面值的硬币,面值为a1...an,数量分别为c1...cn,求问,在这些 ...
- dp入门 专题记录 2017-7-26
POJ3176-Cow Bowling 题目大意:现有n行数,以金字塔的形式排列,即第一行一个数字,第二行2个数字,依次类推,现在需要找一条从第一层到第n层的路线,使得该路线上的所有点的权值和最大 思 ...
- dp问题 -挑战例题 2017-7-24
01 背包 题意: 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数).求背包能够容纳的最大价值. f[i] ...
随机推荐
- JavaScript学习总结(十九)——使用js加载器动态加载外部Javascript文件
今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js 1 var MiniSite=new Object(); 2 /** 3 * 判断浏览器 4 */ 5 M ...
- Python Django 前后端数据交互 之 HTTP协议下GET与POST的区别
99%的人都理解错了HTTP中GET与POST的区别(转自知乎) 作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- DevExpress v17.2新版亮点—Windows 10篇
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了Windows 10 Controls v17.2 的新功能,快来下载试用新版本! ...
- SQL 递归找查所有子节点及所有父节
在SQL的树型结构中,很多时候,知道某一节点的值,需要查找该节点的所有子节点(包括多级)的功能,这时就需要用到如下的用户自定义函数. 表结构如下: ID int Dep_Type int Dep_Co ...
- Beand的高级特征
Spring程序中,Java Bean一般与Spring是非耦合的,不会依赖于Spring类库.这也是Spring的优点. 实现BeanNameAware接口获取本bean的id属性 BeanName ...
- slf4j简单使用
一 slf4j+log4j 1.添加依赖 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <d ...
- jQuery的noConflict以及插件扩展
一.noConflict函数 JavaScript有很多插件,如果jQuery对象的$与其他插件冲突,我们可以使用noConflict()方法去掉$或者使用其他的符号代替 注:noConflict() ...
- 【Cocos2d-X(1.x 2.x) 修复篇】iOS6 中 libcurl.a 无法通过armv7s编译以及iOS6中无法正常游戏横屏的解决方法
本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1000.html ...
- Vue 2.0 学习路线
「 Vue很难学吗 」 对于我这种从0.x版本就开始体验 vuejs 的人来说,当然不算难,那时候没各种脚手架和复杂搭配,仅仅是一个mvvm的解决方案库而已,解决了jq带来的繁琐操作dom痛点,所以就 ...