题目链接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. Docker学习笔记(4) — 开启Docker远程访问

    默认情况下,Docker守护进程会生成一个socket(/var/run/docker.sock)文件来进程本地进程通信,而不会监听任何端口,因此只能在本地使用docker客户端或者使用Docker ...

  2. Ubuntu 14.04下安装GitLab指南

    摘要 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 在GitLab的官方网站上面对Ubuntu的支持也是很好的,有比较详尽的安装指南. ...

  3. windows下Eclipse安装Perl插件教程

    windows下Eclipse安装Perl插件教程 想用eclipse编写perl.网上看了很多资料.但EPIC插件的下载连接都失效了.无奈,只好自己动手写个教程记录一下. 准备工作: 安装好Ecli ...

  4. C语言,const

    const意味着“只读” ubunto下的实验 1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的.如果你曾花很多时间清理 ...

  5. “Clang” CFE Internals Manual---中文版---"Clang"C语言前端内部手册

    原文地址:http://clang.llvm.org/docs/InternalsManual.html 译者:史宁宁(snsn1984) "Clang"C语言前端内部手册 简介 ...

  6. 三种java 去掉字符串中的重复字符函数

    三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...

  7. FastReport 数据过滤

    FastReport 数据过滤 在DataBind 的 OnBeforePrint 设置条件   例:显示 大于0 的数据 procedure MasterData1OnBeforePrint(Sen ...

  8. 参考storm中的RotatingMap实现key超时处理

    storm0.8.1以后的RotatingMap完全可以独立于storm用来实现hashmap的key超时删除,并调用回调函数 RotatingMap.java: import java.util.H ...

  9. 最大似然预计(Maximum likelihood estimation)

    一.定义     最大似然预计是一种依据样本来预计模型參数的方法.其思想是,对于已知的样本,如果它服从某种模型,预计模型中未知的參数,使该模型出现这些样本的概率最大.这样就得到了未知參数的预计值. 二 ...

  10. oc 可变參数传递

    - (id)initWithFrame:(CGRect)frame delegate:(id<SGFocusImageFrameDelegate>)delegate focusImageI ...