bzoj5043: 密码破译
Description
小Q发明了一个新的加密算法,对于一个长度为n的非负整数序列a_1,a_2,...,a_n,他会随机选择一个非负整数k,
Input
Output
输出一个非负整数k,若无解输出-1,若有多组解,输出最小的k。
从高位到低位dp确定k的值,状态表示为当前考虑完第i位,m已被凑出了j,此时k的最小值。观察到$j$是$2^i$的倍数,且当$\frac{j}{2^i}$在O(n)范围时才对最终答案有影响,因此总状态数可以接受,在O(nlogm)级别。
#include<bits/stdc++.h>
typedef long long i64;
const int N=2e5+;
const i64 inf=1ll<<;
char ib[N*],*ip=ib;
i64 _(){
i64 x=;
while(*ip<)++ip;
while(*ip>)x=x*+*ip++-;
return x;
}
int n,t[][];
i64 m,f[N],g[N];
void mins(i64&a,i64 b){if(a>b)a=b;}
int main(){
fread(ib,,sizeof(ib),stdin);
n=_(),m=_();
for(int i=;i<=n;++i){
i64 x=_();
for(int j=;j<;++j)++t[j][x>>j&];
}
n*=;
for(int i=;i<=n;++i)f[i]=inf;
for(int i=;i>=;--i){
for(int j=m>>i&;j<=n;j+=)g[j]=f[j>>];
for(int j=;j<=n;++j)f[j]=inf;
int c1=t[i][],c0=t[i][];
for(int j=m>>i&;j<=n;j+=)if(g[j]<inf){
if(j>=c0)mins(f[j-c0],g[j]);
if(j>=c1)mins(f[j-c1],g[j]|1ll<<i);
}
}
printf("%lld\n",f[]==inf?-1ll:f[]);
return ;
}
bzoj5043: 密码破译的更多相关文章
- [Bzoj5043][Lydsy1709月赛]密码破译(按位dp)
5043: [Lydsy1709月赛]密码破译 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 477 Solved: 125[Submit][Sta ...
- Machine Learning for hackers读书笔记(七)优化:密码破译
#凯撒密码:将每一个字母替换为字母表中下一位字母,比如a变成b. english.letters <- c('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' ...
- Hydra密码破译工具
Hydra简介 Hydra是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码,目前已经被Backtrack和kali等渗透平台收录.除了命令行下的Hydra外,还提供了Hydr ...
- red hat 7、centos7的root密码破译
一.在开机画面时按"E". 二.找到linux16开头的这段,在段尾添加空格"rd.break"然后按Ctrl+x进入系统紧急救援模式. 三.新的界面出现命令行 ...
- 长理ACM 7-密码破译(闫博钊)
/* //题目标题: *密码破译(闫博钊) //题目描述: *某组织欲破获一个外星人的密码,密码由一定长度的字串组成.此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度, ...
- shadow密码文件
登录Linux会要求输入用户名和密码.通常本地文件中会存储一份用户密码,并与用户输入对比,如果相同就允许用户登录.起初用户密码存储与/etc/passwd中,但由于/etc/passwd必须供所有用户 ...
- [CTF]维吉尼亚密码(维基利亚密码)
[CTF]维吉尼亚密码(维基利亚密码) ----------------------百度百科 https://baike.baidu.com/item/维吉尼亚密码/4905472?fr=aladdi ...
- 如何提高Linux操作系统的安全性 转自https://yq.aliyun.com/articles/24251?spm=5176.100239.blogcont24250.7.CfBYE9
摘要: Linux系统不论在功能上.价格上或性能上都有很多优点,但作为开放式操作系统,它不可避免地存在一些安全隐患.关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本.最常用, ...
- 转 15款免费WiFi(入侵破解)安全测试工具
转:http://www.ctocio.com/security/cloudsecurity/6594.html 一.Vistumbler扫描器 WiFi 扫描器能能发现附近AP的详细信息,例如信号强 ...
随机推荐
- iOS常用的代码块整理
strong @property (nonatomic,strong) <#Class#> *<#object#>; weak @property (nonatomic,wea ...
- cvtColor()学习
CvtColor Void cv::cvtColor(InputArray src, OutputArray dst, INT code, INT dstCn = ) 将图像从一个颜色空间转换为另一个 ...
- 【带权并查集】【HDOJ】
http://acm.hdu.edu.cn/showproblem.php?pid=3047 Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) ...
- hdu6441 Find Integer (费马大定理)
#include<bits/stdc++.h> using namespace std; int main() { int T; scanf("%d",&T); ...
- dijksta 模板
#include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f ]; ]; ][]; void dijkstra(i ...
- 《DSP using MATLAB》Problem5.33
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- draw graph
http://www.icl.pku.edu.cn/member/yujs/bsdfiles/html/mpost.htmlUNIX下绘图面面观 http://www.tug.org/metapost ...
- e.target和e.srcElement
IE下,event对象有srcElement属性,但是没有target属性; Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即: fire ...
- idea+maven+springmvc+helloworld
1.添加依赖,并在项目上添加Spring mvc框架的支持(add FrameWork Support): <dependency> <groupId>junit</gr ...
- mysql show master status为空值
问题 执行show master status,输出结果为空: mysql> show master status; Empty set (0.00 sec) 原因 mysql没有开启日志. 查 ...