时限2s
题意:

第一行包含两个整数,分别是n(1 <= n <= 36)和s(0 <= s <9 * 10 18
第二行包含n个整数,它们是{a i }(0 <a i <2 * 10 17)。
 {ai}就像在Merkle–Hellman背包密码系统中一样生成,因此存在一个解决方案,并且该解决方案是唯一的。
如果数组{ai}是需要的输出1,不需要的输出0
样例:
输入

8 1129
295 592 301 14 28 353 120 236

输出

01100001

思路:

因为n是36,2^36明显会超时,所以用折半枚举;

用两个map一个存前半段2^(n/2)的不同和以及输出状态

 #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define il inline
#define it register int
#define inf 0x3f3f3f3f
#define lowbit(x) (x)&(-x)
#define mem(a,b) memset(a,b,sizeof(a))
#define modd 998244353
const int maxn=4e4+;
ll kk,a[];
int n;
map<ll,int>m;
map<ll,string>mp;
int main(){
scanf("%d%lld",&n,&kk);
for (it i = ; i < n; i++){
scanf("%lld", &a[i]);
}
for (it i = ; i < << (n / ); i++){
ll sum = ;
string c = "";
for (it j = ; j < n / ; j++){
if ((i >> j) & ){
sum += a[j];
c+= "";
}
else{
c += "";
}
}
m[sum]++;
mp[sum] = c;
}
int wk=n - n / ;
for (it i = ; i < << wk; i++){
ll sum = ;
string c = "";
for (it j = ; j < wk; j++){
if ((i >> j) & ) {
sum += a[j + n / ];
c += "";
}
else{
c += "";
}
}
if(m[kk - sum]==){
cout << mp[kk - sum] << c << endl;
}
}
return ;
}

Knapsack Cryptosystem 牛客团队赛的更多相关文章

  1. 牛客巅峰赛S2第6场题解

    牛客编程巅峰赛S2第6场 A-StringⅡ 题目 题目描述 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母(ASCII码差值的绝对值为1),请你求出 ...

  2. 牛客小白赛1 F题三视图

    链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网 题目描述 Etéreo 拿出家里的许多的立方体积木,堆成了一个三维空间中的模型.既然你高考选了技术 ...

  3. 牛客小白赛4J——强迫症

    链接:https://www.nowcoder.com/acm/contest/134/J 来源:牛客网 思路:把数列排序,把每一个重复的元素和最后一个数想加得到新数,在删掉这一元素即为去重的最少步骤 ...

  4. 牛客小白赛4 A 三角形 数学

    链接:https://www.nowcoder.com/acm/contest/134/A来源:牛客网 题目描述 铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想 ...

  5. 牛客小白赛5 无关(relationship) 容斥原理(计算因子数的模板)

    链接:https://www.nowcoder.com/acm/contest/135/A来源:牛客网 若一个集合A内所有的元素都不是正整数N的因数,则称N与集合A无关.   给出一个含有k个元素的集 ...

  6. 牛客小白赛4 C题

    乘法逆元: 一个数a 乘上 b,在mod之后再还原成本来的数 a 这里就要用到乘法逆元,(a*b)%mod*inv(b,mod)==a ll exgcd(ll a,ll b,ll &x,ll ...

  7. 牛客训练赛25-A-最长区间

    https://www.nowcoder.com/acm/contest/158#question 这题问最长的严格连续递增序列的最长长度是多少? 最开始感觉这道题不可做,因为有1e5个点,还有1e5 ...

  8. 牛客训练赛25-A-因数个数

    题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e ...

  9. 这是一个数学题牛客训练赛E

    题目描述   https://www.nowcoder.net/acm/contest/78/E 已知有一个n+1个数的数列,对于给定的A0和An ,当i满足当1<=i<=n-1时有    ...

随机推荐

  1. Wannafly Camp 2020 Day 1A 期望逆序对 - 概率期望

    分类讨论即可 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 5005; ...

  2. jdk 1.8.0_131 Class JavaLaunchHelper is implemented

    错误提示:objc[49447]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jd ...

  3. PHP不使用第三个变量,如何实现两个变量值互换(变量值自定)

    1.使用函数: $a = 123; $b = 456; list($b,$a) =array($a,$b); 2.数学算式:$a =$a+$b-$b; $a =2; $b =1; $a =$a+$b; ...

  4. 安装postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题

    安装postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题 解决办法: 1.安装系统更新补丁KB2533623,下 ...

  5. RN开发-组件View,Text

    1.外联js文件(RN自定义组件)        module.exports=Header; 导出模块         const Header=require('./header'); 导入外部j ...

  6. codeforces 1285E. Delete a Segment

    链接:https://codeforces.com/problemset/problem/1285/E 题意:给一个数轴上有n个线段集,线段集若有相交,则合并为一个新的合并线段集,比如[1,6]和[2 ...

  7. 使用docker布署wordpress

    环境准备 本博客使用docker环境搭建,从而做到布署简单 centos7环境(centos6跑docker要升级内核,也不建议这样做) 在centos7上安装好docker环境docker安装文档 ...

  8. CentOS7安装配置Apache、PHP和MySQL

    一.安装Apache sudo yum install httpd 安装成功后,Apache操作命令: systemctl start httpd //启动apache systemctl stop ...

  9. 用eclipse中自带的jetty启动项目

    1.建立datasources.xml,创建jndi <jee:jndi-lookup id="datasource" jndi-name="jndiname&qu ...

  10. 关于QImage和IplImage之间转换的实现

    在嵌入式系统中实现qt和opencv的处理,最基础的就是QImage和IplImage之间的转换.这样两者就可以进行一起使用图像数据,从而达到利用qt显示和利用opencv处理的功能. 下面我将贴出代 ...