L3-001. 凑零钱

时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。

输入格式:

输入第一行给出两个正整数:N(<=104)是硬币的总个数,M(<=102)是韩梅梅要付的款额。第二行给出N枚硬币的正整数面值。数字间以空格分隔。

输出格式:

在一行中输出硬币的面值 V1 <= V2 <= ... <= Vk,满足条件 V1 + V2 + ... + Vk = M。数字间以1个空格分隔,行首尾不得有多余空格。若解不唯一,则输出最小序列。若无解,则输出“No Solution”。

注:我们说序列{A[1], A[2], ...}比{B[1], B[2], ...}“小”,是指存在 k >= 1 使得 A[i]=B[i] 对所有 i < k 成立,并且 A[k] < B[k]。

输入样例1:

8 9
5 9 8 7 2 3 4 1

输出样例1:

1 3 5

输入样例2:

4 8
7 2 4 3

输出样例2:

No Solution
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<queue>
#include<stack>
#include<string>
#include<algorithm>
#define MAX 10005
#define INF 0x3f3f3f3f
using namespace std; int a[MAX];
int f[],b[MAX][];
int max(int x,int y){
return x>y?x:y;
}
bool cmp(int x,int y){
return x>y;
}
int main()
{
int n,m,i,j;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++){
scanf("%d",&a[i]);
}
sort(a+,a+n+,cmp);
for(i=;i<=n;i++){
for(j=m;j>=a[i];j--){
if(f[j]<=f[j-a[i]]+a[i]) b[i][j]=;
f[j]=max(f[j],f[j-a[i]]+a[i]);
}
}
if(f[m]==m){
int ii=n;
queue<int> q;
while(m){
if(b[ii][m]){
q.push(a[ii]);
m-=a[ii];
}
ii--;
}
int ff=;
while(q.size()){
if(ff==) printf(" ");
else ff=;
printf("%d",q.front());
q.pop();
}
printf("\n"); }
else printf("No Solution\n");
return ;
}

最新文章

  1. [IOS]JSPatch
  2. Tools - Get technical information from the Internet
  3. AJAX原理及应用
  4. 将dll程序集添加到缓存里
  5. RESTful 接口规范
  6. nuget的小Tips
  7. oracle11g RAC添加节点
  8. LeetCode题解——Longest Substring Without Repeating Characters
  9. linux版本qq的安装
  10. 【原】Redis基本操作
  11. c#判断输入textbox是否为数字
  12. 浅谈管道模型(Pipeline)
  13. poj3270Cow Sorting(置换+贪心)
  14. 线性代数之行列式的C#研究实现
  15. 「luogu2680」[NOIp2015] 运输计划
  16. 如何通过Chrome远程调试android设备上的Web网站
  17. CSS鼠标悬浮DIV后显示DIV外的按钮
  18. Player Settings 导出设置
  19. docker:搭建lamp应用
  20. QListView和QListWidget的区别

热门文章

  1. Facebook Gradient boosting 梯度提升 separate the positive and negative labeled points using a single line 梯度提升决策树 Gradient Boosted Decision Trees (GBDT)
  2. PowerDesigner 125 导致 Word 2007文档内容无法选中以及点击鼠标没用
  3. 取得微信用户OpenID
  4. imagick图片压缩。
  5. CUDA:零拷贝主机内存
  6. Java for LeetCode 085 Maximal Rectangle
  7. STemWin显示汉字 — SD卡外挂XBF字库
  8. Linux环境下使用dosemu写汇编
  9. u盘安装debian 7(Wheezy) stabe
  10. SQLSERVER2008 R2的端口设置