4120:硬币
总时间限制: 1000ms 内存限制: 262144kB
描述
宇航员Bob有一天来到火星上,他有收集硬币的习惯。于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an。 Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元。Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类。飞机场不提供找零,只接受恰好X元。

输入
第一行包含两个正整数n和x。(1 <= n <= 200, 1 <= x <= 10000)
第二行从小到大为n个正整数a1, a2, a3 … an (1 <= ai <= 10000)
输出
第一行是一个整数,即有多少种硬币是必须被使用的。
第二行是这些必须使用的硬币的面值(从小到大排列)。
样例输入
5 18
1 2 3 5 10
样例输出
2
5 10
提示
输入数据将保证给定面值的硬币中至少有一种组合能恰好能够支付X元。
如果不存在必须被使用的硬币,则第一行输出0,第二行输出空行。

问题链接:Bailian4120 硬币
问题简述:(略)
问题分析:0-1背包问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4120 硬币 */#include <bits/stdc++.h>using namespace std;const int N = 200 + 1;
int a[N], ans[N], dp[10000];int cal(int x, int y)
{if (x < 0) return 0;else return dp[x] - cal(x - y, y);
}int main()
{int n, x;scanf("%d%d", &n, &x);for (int i = 1; i <= n; i++) scanf("%d", &a[i]);memset(dp, 0, sizeof dp);dp[0] = 1;for (int i = 1; i <= n; i++)for (int j = x; j >= a[i]; j--)dp[j] += dp[j - a[i]];int cnt = 0;for (int i = 1; i <= n; i++)if (cal(x, a[i]) == 0) ans[cnt++] = a[i];printf("%d\n", cnt);if (cnt == 0) printf(" \n");else {printf("%d", ans[0]);for (int i = 1; i < cnt; i++)printf(" %d", ans[i]);printf("\n");}return 0;
}

Bailian4120 硬币【0-1背包】相关推荐

  1. Python 0/1背包、动态规划

    参考:http://www.cnblogs.com/fcyworld/p/6243012.html Python 0/1背包.动态规划 0/1背包问题:在能承受一定重量的背包中,放入重量不同,价值不同 ...

  2. P1417 烹调方案 (0/1背包+贪心)

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  3. 算法分析与设计——蛮力法0/1背包

    蛮力法0/1背包 蛮力法 蛮力法是一种简单直接解决问题的方法,常常直接基于问题的描述,所以蛮力法也是最容易应用的方法. 蛮力法所依赖 的基本技术是遍历,即采用一定的策略依次处理待求解问题的所有元素,从 ...

  4. 数据结构与算法 / 回溯算法(八皇后、0 - 1 背包)

    回溯算法,顾名思义,就是在没有得到最优解的前提下,不断的返回至前面的岔路口位置,重新选择,直至遍历了所有的情况或者得到的预期最优解的情况下再结束. 与贪心算法不同的是,回溯算法理论上是可以得到最优解, ...

  5. 【例1】 0/1背包《信息学奥赛一本通》【解法一】 02

    /* [例1] 0/1背包<信息学奥赛一本通>[解法一] 02 http://ybt.ssoier.cn:8088/problem_show.php?pid=1267 */ #includ ...

  6. HDOJ 2602-Bone Collector(0/1背包模板、打印方案及滚动数组解法)

    0/1背包 一.Bone Collector 解法一:二维数组解法(0/1背包模板代码) 1.1 0/1背包打印方案代码 解法二:滚动数组(一维)解法 2.1 一维滚动数组例题 E-爱玩游戏的Tom ...

  7. 动态规划(五)——0/1背包

    0/1背包 一.0/1背包问题 1.实例讲解 2.DP求解0/1背包 3.输出0/1背包方案 二.0/1背包题目代码(持续更新) 一.0/1背包问题 给定n种物品和一个背包,物品i的重量为wi,价值为 ...

  8. HDU1248 寒冰王座【0/1背包+DP】

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. 动态规划算法初步(6)——0/1 背包

    动态规划算法初步(6) 例题五:0/1 背包(背包型) 题目: 一个旅行者有一个最多能装m公斤物品的背包,现在有n件物品,它们的重量分别是w1,w2,-,wn,它们的价值分别为c1,c2,-,cn.若 ...

最新文章

  1. AI根据视频画面自动配音 ,真假难辨 !(附数据集)
  2. 各种排序算法及其java程序实现
  3. select * from where 三个条件_VBA学习笔记70: Select语句基础
  4. 微信小程序笔记六模块化 —— module.exports
  5. virtualbox虚拟机上安装centOS的网络配置(安装centos时选择桥接网络)
  6. 后端如何收取多个文件_一次上传多个文件机制的两种解决方案
  7. 加密狗破解原理和破解方法介绍
  8. 瑞星服务器版序列号 2009,瑞星序列号2009 瑞星杀毒软件序列号和ID
  9. java生成对称矩阵_JAVA 对称矩阵的压缩存储
  10. electron 剪贴板 截图_利用 Electron 开发快速截图工具(二)
  11. 儿童早教APP开发成品案例
  12. sketch插件 android,30个值得拥有的sketch插件(4)完结篇
  13. 微机接口-8086CPU
  14. 2018-2019-2 20165320 《网络对抗技术》 Exp8:Web基础
  15. 阿里云大数据之MaxComputer简介
  16. 三分钟带你了解mybatis关联映射(案例分析一对一,多对多)
  17. 联想 ThinkPad x260无法通过U盘安装Windows 7问题解决办法
  18. MAC的OS系统损坏情况下,U盘启动安装win10系统
  19. 快手春节红包pk则么玩 快手拔河拼牛气活动规则介绍
  20. 全方位剖析 清华同方 ,脉络千里

热门文章

  1. 《3S 新闻周刊》No.14:从融资到裁员,灵图那些事儿
  2. 2022-03-28 术语MES、WMS
  3. sde执行revoke SELECT ANY TABLE from sde导致报ora-29900 运算符连接不存在错误
  4. 组装自己的php框架,搭建自己的PHP框架
  5. MySQL的 配置文件编写
  6. epoll编程实例客户端_深入底层探析网络编程之多路复用器(select,poll,epoll)
  7. 微服务笔记(一) 搭建服务治理中心
  8. Navicat for MySQL 1130 - Host ‘DeskTop-**‘ is not allowed to connect to this MySQL-server错误解决
  9. MySQL建表(那些字段必须)命令详解
  10. Kafka模拟实现(用于自我测试环境)