题目链接http://poj.org/problem?id=1742

http://acm.hdu.edu.cn/showproblem.php?pid=2844

题目分类:动态规划

代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm> using namespace std;
int n,m;
bool flag[]; struct P
{
int a,b; }point[]; int cmp(P X,P Y)
{
return X.a<Y.a;
} int main()
{
while(scanf("%d %d",&n,&m)&&(n+m))
{
memset(point,,sizeof(point));
memset(flag,,sizeof(flag)); for(int i=;i<=n;i++)
{
scanf("%d",&point[i].a);
}
for(int i=;i<=n;i++)
{
scanf("%d",&point[i].b);
}
sort(point+,point+n+,cmp);
int sum[]; flag[]=;
for(int i=;i<=n;i++)
{
memset(sum,,sizeof(sum));
for(int k=point[i].a;k<=m;k++)
{
if(flag[k-point[i].a]&&sum[k-point[i].a]<point[i].b&&!flag[k])
{
sum[k] = sum[k-point[i].a] + ;
flag[k] = ;
}
}
} int ans=;
for(int i=;i<=m;i++)
{
if(flag[i])
{
//printf("sss== %d\n",i);
ans++;
}
}
printf("%d\n",ans);
}
return ;
}
#include<bits/stdc++.h>

using namespace std;

bool dp[];
int TmpVal[];
int val[]; int main()
{
cin.sync_with_stdio(false);
cout.sync_with_stdio(false);
int n, m;
while(cin>>n>>m)
{
if(n== && m==)
break;
memset(dp, , sizeof(dp));
for(int i=;i<=n;i++)
cin>>TmpVal[i];
int N = ;
for(int i=;i<=n;i++)
{
int num;
cin>>num;
int j = 1;
while(j<=num)
{
val[++N] = TmpVal[i] * j;
num -= j;
j = (j<<1);
}
if(num)
{
val[++N] = TmpVal[i] *
num;
}

}
dp[0] = 1;
for(int i=;i<=N;i++)
{
for(int j=m;j>=val[i];j--)
{
if(dp[j-val[i]])
dp[j] = ;
}
}
int ans = ;
for(int i=;i<=m;i++)
if(dp[i])
ans++;
printf("%d\n", ans);
}
return ;
}

POJ 1742 hdu 2844 Coins的更多相关文章

  1. 背包系列练习及总结(hud 2602 && hdu 2844 Coins && hdu 2159 && poj 1170 Shopping Offers && hdu 3092 Least common multiple && poj 1015 Jury Compromise)

    作为一个oier,以及大学acm党背包是必不可少的一部分.好久没做背包类动规了.久违地练习下-.- dd__engi的背包九讲:http://love-oriented.com/pack/ 鸣谢htt ...

  2. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  3. HDU 2844 Coins (多重背包计数 空间换时间)

    Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. hdu 2844 Coins (多重背包)

    题意是给你几个数,再给你这几个数的可以用的个数,然后随机找几个数来累加, 让我算可以累加得到的数的种数! 解题思路:先将背包初始化为-1,再用多重背包计算,最后检索,若bb[i]==i,则说明i这个数 ...

  5. hdu 2844 Coins (多重背包+二进制优化)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844 思路:多重背包 , dp[i] ,容量为i的背包最多能凑到多少容量,如果dp[i] = i,那么代表 ...

  6. hdu 2844 Coins

    Coins Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted S ...

  7. hdu 2844 coins(多重背包 二进制拆分法)

    Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. On ...

  8. hdu 2844 Coins 多重背包(模板) *

    Coins                                                                             Time Limit: 2000/1 ...

  9. HDU 2844 Coins(多重背包)

    点我看题目 题意 :Whuacmers有n种硬币,分别是面值为A1,A2,.....,An,每一种面值的硬币的数量分别是C1,C2,......,Cn,Whuacmers想买钱包,但是想给人家刚好的钱 ...

随机推荐

  1. Unix/Linux环境C编程新手教程(24) MySQL 5.7.4 for Red Hat Enterprise 7(RHEL7)的安装

    远观历史, MySQL的主要目的是为了可以在单处理器核心的商业服务器上执行.现在MySQL的一个变化用户可能不会注意到,那就是甲骨文已经開始又一次架构MySQL的代码,使它大量的模块化.如软件解析器, ...

  2. JavaScript实现复制功能

    这两天在做Web前端时,遇到需求通过 js 实现文本复制的功能. 先不考虑浏览器的兼容性,看看各浏览器对复制功能的支持情况: 1.IE浏览器 ,解决方法有三种,代码如下: function copy( ...

  3. Eclipse用法和技巧二十:一个快速打印技巧

    调试的时候经常用到打印语句,当需要添加的说明字符串和需要打印的数值混淆到一起的时候,需要先写字符串如,"the string here is",接着再输入变量的值.这样一来一去还是 ...

  4. Mysql zip 安装(windows)

    Mysql Windows zip包安装 Mysql 下载地址: http://dev.mysql.com/downloads/mysql/ 下载windows 版本对应的zip,之后解压 在C:\P ...

  5. Python 基础编程

    Python 打印九九乘法表: for i in range(1,10): for j in range(1,i+1): print j,'*',i,'=',j*i,' ', print '\n' P ...

  6. Android 点亮屏幕

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  7. Google 开源项目风格指南阅读笔记(C++版)

    虽说是编程风格指南,可是干货也不少,非常多C++的有用技术在里面. 头文件 通常每一个.cpp文件都相应一个.h文件:#define保护全部头文件都应该使用#define防止头文件被多重包括,为保证唯 ...

  8. cocos2d-x游戏开发系列教程-坦克大战游戏加载地图的编写

    上节课写了关卡选择场景,那么接下来写关卡内容,先写最基本的地图的加载 我们新建一个场景类,如下所示: class CityScene : public cocos2d::CCLayer { publi ...

  9. 性能测试之LoardRunner 检查点

    概述 1.检查点概念 2.实例 以下是详细介绍 检查点:首先来看一下VuGen确定脚本运行成功的判断条件.在录制编写脚本后,通常就会进行回放,如果回放通过没有错误,就认为脚本是正确的.究竟VuGen怎 ...

  10. Android学习笔记(九)——更复杂的进度对话框

    显示操作进度的对话框 1.使用上一篇创建的同一项目.在activity_main.xml文件里加入一个Button: <Button android:id="@+id/btn_dial ...