题意:

就是找出来一个字典序最小的硬币集合,且这个硬币集合里面所有硬币的值的和等于题目中的M

题解:

01背包加一下记录路径,如果1硬币不止一个,那我们也不采用多重背包的方式,把每一个1硬币当成一个独立的单位来进行01背包dp

但是我们知道背包dp的路径可能不止一条,而我们要从中得到字典序最小的序列,我的代码中两次不同的排序会得到最大/小字典序

降序 == 最小字典序

升序 == 最大字典序

 1 #include<iostream>
2 #include<queue>
3 #include<vector>
4 #include<string.h>
5 #include<stdio.h>
6 #include<algorithm>
7 using namespace std;
8 typedef long long ll;
9 const int maxn=5e4+10;
10 const int N=1e4+10;
11 int v[N];
12 int vv[N];
13 int dp[N];
14 bool pre[N][105];
15 int main()
16 {
17 int m,n;
18 scanf("%d%d",&n,&m);
19 for(int i=1; i<=n; i++)
20 {
21 scanf("%d",&v[i]);
22 }
23 sort(v+1,v+n+1); //从大到小排序那么答案输出就是最小字典序,如果是从小到大排序,那么答案输出
24 //就是最大字典序(这就是结论),greater<int>()
25 memset(dp,0,sizeof(dp));
26 memset(pre,0,sizeof(pre));
27 for(int i=1; i<=n; i++)
28 {
29 for(int j=m; j>=v[i]; j--)
30 {
31 if(dp[j]<=dp[j-v[i]]+v[i])
32 {
33 dp[j]=dp[j-v[i]]+v[i];
34 pre[i][j]=1;//如果第i个歌曲被放进背包,,标记当前背包的位置,记录路径;
35 }
36 }
37 }
38 if(dp[m]!=m)
39 {
40 printf("No Solution\n");
41 return 0;
42 }
43 int i=n,j=m,flag=0; //这里的初赋值可不能随意改(控制输出最后最大/小字典序就是sort排序和这里,至于为什么可以画一下图)
44 while(i>=1&&j>=0)
45 {
46 if(pre[i][j])
47 {
48 if(!flag)
49 printf("%d",v[i]),flag=1;
50 else printf(" %d",v[i]);
51 j=j-v[i];//第i张歌曲放在了第当背包容量为j-v[i]时,下一步找第i-1张歌曲.(由此的来dp[j]=dp[j-v[i]]+v[i];)
52 }
53 i--;
54 }
55 return 0;
56 }

我对多重背包记录路径和完全背包记录路径

1、对于多重背包记录路径

第一种方法就是像这一道题一样,把多重背包当作01背包来写,但是这样时间复杂度肯定高

2、完全背包都不限制数量了,那记录路径就没有意义了

01背包记录路径 (例题 L3-001 凑零钱 (30分))的更多相关文章

  1. UVA624(01背包记录路径)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  2. HDU 6083 度度熊的午饭时光(01背包+记录路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=6083 题意: 思路: 01背包+路径记录. 题目有点坑,我一开始逆序枚举菜品,然后一直WA,可能这样的话路径记录 ...

  3. 牛客网暑期ACM多校训练营(第三场) A PACM Team 01背包 记录路径

    链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 Eddy was a contestant participating in ACM ICPC ...

  4. UVA 624(01背包记录路径)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  5. Atcoder Beginner Contest145E(01背包记录路径)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[3007],b[3007];int ...

  6. Codeforces Gym-102219 2019 ICPC Malaysia National E. Optimal Slots(01背包+输出路径)

    题意:给你一个体积为\(T\)的背包,有\(n\)个物品,每个物品的价值和体积都是是\(a_{i}\),求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路 ...

  7. 天梯赛L3-001. 凑零钱(01背包记录物品)

    L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...

  8. vijos 1071 01背包+输出路径

    描述 过年的时候,大人们最喜欢的活动,就是打牌了.xiaomengxian不会打牌,只好坐在一边看着. 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了.于是 ...

  9. poj1417 带权并查集 + 背包 + 记录路径

    True Liars Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2713   Accepted: 868 Descrip ...

随机推荐

  1. IDEA一步步创建Maven管理的Spring入门程序

    目前,做Java开发的很多人都在使用IDEA了,而有些人也选择用Eclipse,我这里介绍一下IDEA一步步创建Maven项目的步骤,并创建一个Spring的入门程序(Java项目,非Web项目),讲 ...

  2. oracle RAC和RACOneNode之间的转换

    Convert RAC TO RACOneNode 1.查看资源状态 [grid@rac01 ~]$ crsctl status res -t 从这里看到,数据库的名字叫racdb 2.查看实例 [o ...

  3. SAP RFC的相关的术语说明

    工作比较忙,很少有时间写点文章,抽空写点吧,给需要的人看看,虽然徒弟很多了,不过还是不要固步自封,在这里也指导更多的人进步吧. RFC(Remote Function Call)是SAP系统和其他(S ...

  4. MongoDB分片集群部署方案

    前言 副本集部署是对数据的冗余和增加读请求的处理能力,却不能提高写请求的处理能力:关键问题是随着数据增加,单机硬件配置会成为性能的瓶颈.而分片集群可以很好的解决这一问题,通过水平扩展来提升性能.分片部 ...

  5. Request&Response总结

    Request&Response Request 请求对象的类视图 请求对象常用方法 获取请求路径 返回值 方法名 说明 String getContextPath() 获取虚拟目录名称 St ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-国际化,本地化,多语言应用

    开篇 早年写过一篇多语言的应用 :   本地化(多语言)   讲述了如何创建多语言的资源文件,并利用资源文件来获得页面和请求的语言属性 本次补充这篇文章,的原因是在实际项目中,有多种需要多语言的情况 ...

  7. 拒演"拼命工作"的苦情戏,如何更聪明地提高工作效率?

    前几天PDD的事情又把互联网打工人的工作状态推向了大众视野,引起了大家的口诛笔伐.但是目前来看这种愤慨终究是暂时的,作用甚微.在大环境短时间无法改变的前提下,想想如何应对,或许比在网上愤愤不平破口大骂 ...

  8. 我为什么不鼓吹 WireGuard

    原文链接:https://fuckcloudnative.io/posts/why-not-wireguard/ 最近有一款新型 VPN 工具备受瞩目,相信很多人已经听说过了,没错就是 WireGua ...

  9. NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误原因以及解决办法

    nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 报错内容: org.sprin ...

  10. 当中台遇上DDD,我们该如何设计微服务? - InfoQ https://www.infoq.cn/article/7QgXyp4Jh3-5Pk6LydWw

    当中台遇上DDD,我们该如何设计微服务? - InfoQ https://www.infoq.cn/article/7QgXyp4Jh3-5Pk6LydWw