poj1742
| Time Limit: 3000MS | Memory Limit: 30000K | |
| Total Submissions: 33998 | Accepted: 11554 |
Description
You
are to write a program which reads n,m,A1,A2,A3...An and C1,C2,C3...Cn
corresponding to the number of Tony's coins of value A1,A2,A3...An then
calculate how many prices(form 1 to m) Tony can pay use these coins.
Input
of each test case contains two integers n(1<=n<=100),m(m<=100000).The
second line contains 2n integers, denoting A1,A2,A3...An,C1,C2,C3...Cn
(1<=Ai<=100000,1<=Ci<=1000). The last test case is followed by two
zeros.
Output
line.
Sample Input
3 10
1 2 4 2 1 1
2 5
1 4 2 1
0 0
Sample Output
8
4
Source
有n种不同面值的硬币,面值各为A1,A2,A3。。AN,数量各为C1,C2,C3,,,,,CN。给定数m,问这些硬币能组成小于等于m的数中的哪些数,输出这些数的数目。
其实这个vn算法的编码很简单,关键是如何证明这种贪心是正确的,这个比较复杂,,我还在理解中!!!!!!!!
---用单调队列优化的DP已超出了NOIP的范围,

#include<cstdio>
#include<cstring>
using namespace std;
int n,m,ans,w[],v[],d[],s[];
int main()
{
while(scanf("%d%d",&n,&m)==&&n&&m){
int i,j;ans=;
for(i=;i<n;i++) scanf("%d",w+i);
for(i=;i<n;i++) scanf("%d",v+i);
memset(d,,sizeof(d));
for(d[i=]=;i<n;i++){
for(j=;j<=m;j++) s[j]=;
for(j=w[i];j<=m;j++)
if(!d[j]&&d[j-w[i]]&&s[j-w[i]]<v[i])
d[j]=,s[j]=s[j-w[i]]+;
}
for(i=;i<=m;i++)
if(d[i])
ans++;
printf("%d\n",ans);
}
return ;
}

#include<cstdio>
int n,m,res;
int use[],c[],f[];
int main()
{
f[]=;
while(scanf("%d%d",&n,&m)==&&n&&m){
res=;
for(int i=;i<=m;i++) f[i]=;
for(int i=;i<n;i++) scanf("%d",&c[i]);
for(int i=,s;i<n;i++){
for(int j=;j<=m;j++) use[j]=;
scanf("%d",&s);
for(int j=c[i];j<=m;j++){
if(!f[j]&&f[j-c[i]]&&use[j-c[i]]<s){//贪心过程
use[j]=use[j-c[i]]+;
f[j]=;
res++;
}
}
}
printf("%d\n",res);
}
return ;
}
对比上下两张AC图
太想节省空间,空间没节省了,时间还更长了。
读入完成再处理比边读边处理快!!!
poj1742的更多相关文章
- 【poj1742】 Coins
http://poj.org/problem?id=1742 (题目链接) 题意 给出n钟纸币,每种纸币面值为a[i],数量为c[i],问能够成多少数值小于等于m的数. Solution 先想到了容斥 ...
- POJ1742 Coins(男人八题之一)
前言 大名鼎鼎的男人八题,终于见识了... 题面 http://poj.org/problem?id=1742 分析 § 1 多重背包 这很显然是一个完全背包问题,考虑转移方程: DP[i][j]表示 ...
- 《挑战程序设计竞赛》2.3 动态规划-优化递推 POJ1742 3046 3181
POJ1742 http://poj.org/problem?id=1742 题意 有n种面额的硬币,面额个数分别为Ai.Ci,求最多能搭配出几种不超过m的金额? 思路 据说这是传说中的男人8题呢,对 ...
- POJ1742 coins 动态规划之多重部分和问题
原题链接:http://poj.org/problem?id=1742 题目大意:tony现在有n种硬币,第i种硬币的面值为A[i],数量为C[i].现在tony要使用这些硬币去买一块价格不超过m的表 ...
- POJ1742 Coins[多重背包可行性]
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 34814 Accepted: 11828 Descripti ...
- [poj1742]coin
题意:多重背包的w=v特殊情况 分析:此题如果用单调队列O(nv)会被无耻卡常数…… 然后鉴于此题W=V,所以只存在背包恰好为i的是否存在,即bool型的f[i]是否为1 即往背包染色上面考虑 如果是 ...
- poj1742 Coins(多重背包+单调队列优化)
/* 这题卡常数.... 二进制优化或者单调队列会被卡 必须+上个特判才能过QAQ 单调队列维护之前的钱数有几个能拼出来的 循环的时候以钱数为步长 如果队列超过c[i]就说明队头的不能再用了 拿出来 ...
- POJ1742:Coins(多重背包)
Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar. ...
- poj1742 多重背包的可行性问题
http://poj.org/problem? id=1742 Description People in Silverland use coins.They have coins of value ...
随机推荐
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面快速入门 TC2
创建最简单的静态文本,就像是label,就只需要绘制一个矩形框,然后填写Text,取消边框即可(你也可以设置自定义字体) 创建动态的文本框,就像是textbox,需要设置这个矩形框的Text为%d ...
- SAP MM模块 经常使用函数
1. MM_CURRENT_PRICE_DOCUMENT 2. ME_READ_HISTORY 获取採购行项目的历史记录 CALL FUNCTION 'ME_READ_HISTORY' ...
- ionic关于隐藏底部tabs终极解决方案
网上看到很多都是写个指令,监听view进出对tab进行显示隐藏,试过挺多个,自己写了一个,都不是太让人满意,问题大多数为: 1.二级页面是隐藏了tab,但是进去三级视图发现tab又出来了 2.三级,四 ...
- 使用Google-Authenticator加强serverSSH登录
对于须要特殊加密的人群,我这里给出对应的方法来进行谷歌式加密. 过程例如以下: 准备: 首先在你的手机上准备好client(自己百度下载) 接下来依照命令做: date 查看系统时间 da ...
- Django——如何在Django模板中注入全局变量?——part1
问题:TEMPLATE_CONTEXT_PROCESSORS代表着什么? 问题描述:无法在项目的settings.py文件中找到TEMPLATE_CONTEXT_PROCESSORS. ——————— ...
- odoo报表条码无法显示解决
当服务器为Linux(Ubuntu)时,ODOO打印的报表上是有条码的,却显示空白框框. 问题在于服务器上没有安装条码的字体,reportlab渲染条码图形失败,导致显示不正常. 将附件中的字体下载, ...
- Linux 时间修改--date -s命令
Linux 时间修改 不重启修改时区 一.修改linux的时间root使用date指令:date -s1.只修改日期,不修改时间,输入:Linux代码 1. date -s 2007-08-03 da ...
- SVN环境搭建(2)
原文地址:http://www.penglig.com/post-73.html TortoiseSVN的使用. 首先打开VisualSVN Server Manager,如图: 可以在窗口的右边看到 ...
- sql server 函数--rand() 生成整数的随机数
rand() 定义: 返回从0到1之间的随机浮点值. 举例说明: select rand() as 随机数 结果如图: select cast( floor(rand()*N) as int ) ...
- Java实现XSS防御
XSS概述 跨站脚本攻击(Cross Site Scripting),缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行, ...