HDU6092-2017多校5&&背包&贪心-Rikka with Subset
来源:互联网 发布:linux bash是什么 编辑:程序博客网 时间:2024/05/22 17:50
http://acm.hdu.edu.cn/showproblem.php?pid=6092
给定a数组。给定他的长度n,(1<=n<=50)
再给你m。<1<=m<=1e4>
问你他的所有子集中和为 0-m的 数量。数组B(显然子集数量为pow(2,n))个。
如果有很多结果,就输出字典序最小的那个。
字典序最多的那个要求尽可能每次取最小的。
当第一个不为0的B数组中的元素,肯定是最小的。
然后反向背包,把他这一种情况给去掉,继续进行,知道凑到n
#include <bits/stdc++.h>using namespace std;/*背包可以用来计数,统计每个值出现的次数。*/long long a[10005+6];long long b[100];int main(){ int t; int m,n; scanf("%d",&t); while(t--){ scanf("%d%d",&m,&n); int x=0; for(int i=0;i<=n;i++) scanf("%lld",&a[i]); for(int k=1;k<=m;k++){ for(int i=1;i<=n;i++) if(a[i]) {b[x++]=i;break;} for(int j=b[x-1];j<=n;j++) a[j]-=a[j-b[x-1]];//反向背包 } for(int i=0;i<x;i++){ if(i==0) printf("%lld",b[i]); else printf(" %lld",b[i]); } cout<<endl; } return 0;}
阅读全文
0 0
- HDU6092-2017多校5&&背包&贪心-Rikka with Subset
- HDU6092-Rikka with Subset(背包)
- 【2017多校】HDU6092 Rikka with Subset 【DP】
- HDU6092 Rikka with Subset(01背包+思路)
- hdu6092 Rikka with Subset (反向背包)
- HDU6092 Rikka with Subset
- HDU6092-Rikka with Subset
- hdu6092 Rikka with Subset
- HDU6092(Rikka with Subset)
- HDU6092-Rikka with Subset
- HDU6092 Rikka with Subset(01背包,2017 HDU多校联赛 第5场)
- HDU6092 Rikka with Subset-01背包dp-2017多校联盟5 第8题
- Hdu6092 Rikka with Subset(2017多校第5场) 逆推背包
- Hdu6092 Rikka with Subset(2017多校第5场)
- Rikka with Subset(hdu6092)
- HDU6092 Rikka with Subset【DP】
- HDU 6092 Rikka with Subset (2017多校5-背包)
- 2017多校训练Contest5: 1008 Rikka with Subset hdu6092
- HBase安装
- ORA-01017 invalid username/password;logon denied
- MQTT服务器搭建-mosquitto1.4.4安装指南
- sed正则截取字符串的一些坑
- EES提交Latex手稿问题
- HDU6092-2017多校5&&背包&贪心-Rikka with Subset
- 【NOIP2017模拟A组模拟8.5】序列问题
- Java线上应用故障排查之二:高内存占用
- HDU 1599 find the mincost route(无向图最小环)
- 微信token验证失败
- 食物链
- Android Toolbar详解-实现Material Design 风格的导航栏
- JavaScript作用域(二)
- 融云:用“专注”造就连续三年市场占有率第一