Knapsack Cryptosystem 牛客团队赛
时限2s
题意:
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 牛客团队赛的更多相关文章
- 牛客巅峰赛S2第6场题解
牛客编程巅峰赛S2第6场 A-StringⅡ 题目 题目描述 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母(ASCII码差值的绝对值为1),请你求出 ...
- 牛客小白赛1 F题三视图
链接:https://www.nowcoder.com/acm/contest/85/F来源:牛客网 题目描述 Etéreo 拿出家里的许多的立方体积木,堆成了一个三维空间中的模型.既然你高考选了技术 ...
- 牛客小白赛4J——强迫症
链接:https://www.nowcoder.com/acm/contest/134/J 来源:牛客网 思路:把数列排序,把每一个重复的元素和最后一个数想加得到新数,在删掉这一元素即为去重的最少步骤 ...
- 牛客小白赛4 A 三角形 数学
链接:https://www.nowcoder.com/acm/contest/134/A来源:牛客网 题目描述 铁子从森林里收集了n根木棍,她开始将它们按顺序的排成一排,从左到右依次为1到n,她回想 ...
- 牛客小白赛5 无关(relationship) 容斥原理(计算因子数的模板)
链接:https://www.nowcoder.com/acm/contest/135/A来源:牛客网 若一个集合A内所有的元素都不是正整数N的因数,则称N与集合A无关. 给出一个含有k个元素的集 ...
- 牛客小白赛4 C题
乘法逆元: 一个数a 乘上 b,在mod之后再还原成本来的数 a 这里就要用到乘法逆元,(a*b)%mod*inv(b,mod)==a ll exgcd(ll a,ll b,ll &x,ll ...
- 牛客训练赛25-A-最长区间
https://www.nowcoder.com/acm/contest/158#question 这题问最长的严格连续递增序列的最长长度是多少? 最开始感觉这道题不可做,因为有1e5个点,还有1e5 ...
- 牛客训练赛25-A-因数个数
题目链接https://www.nowcoder.com/acm/contest/158/A 无语...这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e ...
- 这是一个数学题牛客训练赛E
题目描述 https://www.nowcoder.net/acm/contest/78/E 已知有一个n+1个数的数列,对于给定的A0和An ,当i满足当1<=i<=n-1时有 ...
随机推荐
- (转)classload和class.forname()区别
转自:http://carl-java.iteye.com/blog/978680 java中class.forName和classLoader都可用来对类进行加载.前者除了将类的.class文件加载 ...
- Alan Walker MV 合辑01 by defender 歌词
其实是歌词浏览,配套Alan Walker MV 合辑01 by defender You were the shadow to my life Did you feel us Another sta ...
- new Vue发生了什么(五)
从入口代码开始分析,我们先来分析 new Vue 背后发生了哪些事情.我们都知道,new 关键字在 Javascript 语言中代表实例化是一个对象,而 Vue 实际上是一个类,类在 Javascri ...
- mui H5+ 调取 相册 拍照 功能 上传图片 + 裁剪功能
H5+ 相册拍照图片上传 点击用户头像后,弹出actionSheet,选择从相册或是拍照:选取照片后调用上传方法: 上传图片后调用PhotoClip.js 插件进行裁剪 具体流程 弹出actionS ...
- C++ 获取当前正在执行的函数的相关信息(转)
该功能用在日志打印中 原文地址:C++ 获取当前正在执行的函数的相关信息
- 初识消息队列--ActiveMq
消息队列 即MessageQueue,是一种消息中间件,在遇到系统请求量比较大的情况下,导致请求堆积过多无法及时返回,可以通过它进行异步的消息处理,从而缓解系统压力. ActiveMq ActiveM ...
- git上传代码技巧
1.一定要先在git上面创建项目然后把文件拉到本地先 1.1克隆到本地(orgin=>'你的远程仓库地址') git clone orgin 1.2初始化项目文件夹 git init 2.操作之 ...
- 白面系列 redis
redis是Key-Value数据库,和Memcached类似.value可以是多种类型,如Strings, Lists, Hashes, Sets 及 Ordered Sets等. redis一个牛 ...
- CodeForce 377 A mazes(dfs+连通性问题)
Pavel 喜欢网格迷宫.一个网格迷宫是一个 n × m 的长方形迷宫,其中每个单元格要么是空白的,要么是墙体.您可以从一个单元格走到另一个单元格,只要两个单元格均是空白的,且拥有一条公共的边. Pa ...
- NMF: non-negative matrix factorization.
1. 矩阵分解可以用来解决什么方法, 以及how? 利用矩阵分解来解决实际问题的分析方法很多,如PCA(主成分分析).ICA(独立成分分析).SVD(奇异值分解).VQ(矢量量化)等.在所有这些方法中 ...