首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
密码 [SCOI2013]
2024-08-29
【bzoj3325】[Scoi2013]密码 逆模拟Manacher
题目描述 给出一个只包含小写字母的字符串的长度.以每一个字符为中心的最长回文串长度.以及以每两个相邻字符的间隙为中心的最长回文串长度,求满足条件的字典序最小的字符串. 输入 输入由三行组成.第一行仅含一个整数N,表示密码的长度.第二行包含N 个整数,表示以每个字符为中心的最长回文串长度.第三行包含N - 1 个整数,表示每两个相邻字符的间隙为中心的最长回文串长度.1 <= n <= 10^5. 输出 输出仅一行.输出满足条件的最小字典序密码.古籍中的信息是一定正确的,故一定存在满足条件的密码.
Manacher思想 SCOI2013 密码
关于$\mathrm{Manacher}$算法,网上介绍已经很全面 这里说一下自己的理解 这里的$rad$数组:$rad_i$表示以以位置i为中心的最长回文串的回文半径(不包括i这个点). 朴素的思想大概是从每个点出发像两边扩展,大概$O(n^2)$复杂度?据说$\mathrm{Manacher}$是$O(n)$的(不会证,Orz,大概因为每个位置只会被暴力扩展$O(1)$次)这是因为回文串有对称性,我们可以利用这点来优化算法.现在假设我们已经得到了$i$和$i$以前的$rad$值,现在想直接通
【BZOJ3325】[Scoi2013]密码 Manacher
[BZOJ3325][Scoi2013]密码 Description Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息: 1. 该密码的长度为N. 2. 密码仅含小写字母. 3. 以每一个字符为中心的最长回文串长度. 4. 以每两个相邻字符的间隙为中心的最长回文串长度. 很快Fish 发现可能有无数种满足条件的密码.经过分析,他觉得这些密码中字典序最小的一个最有可能是
BZOJ3325 [Scoi2013]密码【Manacher】【构造】【贪心】
Description Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息: 该密码的长度为N. 密码仅含小写字母. 以每一个字符为中心的最长回文串长度. 以每两个相邻字符的间隙为中心的最长回文串长度. 很快Fish 发现可能有无数种满足条件的密码.经过分析,他觉得这些密码中字典序最小的一个最有可能是答案,你能帮他找到这个密码么? 注意:对于两个串A和B,如果它们的前i
BZOJ3325 [Scoi2013]密码 【manacher】
题目 Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息: 该密码的长度为N. 密码仅含小写字母. 以每一个字符为中心的最长回文串长度. 以每两个相邻字符的间隙为中心的最长回文串长度. 很快Fish 发现可能有无数种满足条件的密码.经过分析,他觉得这些密码中字典序最小的一个最有可能是答案,你能帮他找到这个密码么? 注意:对于两个串A和B,如果它们的前i个字符都相同,而A
SCOI2013 密码
题目描述: Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进. 通过翻阅古籍,Fish 得知了这个密码的相关信息: 该密码的长度为N. 密码仅含小写字母. 以每一个字符为中心的最长回文串长度. 以每两个相邻字符的间隙为中心的最长回文串长度. 很快Fish 发现可能有无数种满足条件的密码.经过分析,他觉得这些密码中字典序最小的一个最有可能是答案,你能帮他找到这个密码么? 注意:对于两个串A和B,如果它们的前i个字符都相
luogu P3279 [SCOI2013]密码
LINK:密码 给出来manacher的数组 让还原出字典序最小的字符串.字符集为小写字母. 当没有任何限制时 放字典序最小的'a'.如果此时还在最长的回文串中的话那么 直接得到当前字符即可. 注意这个过程要在上次放过的位置之后放 不能暴力放 暴力放是n^2的 确定位置跟原来的manacher是一致的. 最困难的是 当前位置不确定 前面那个也同时超出了前面串的回文半径. 随便加一个字符显然可能会出现错误.但是考虑到一个串的回文半径做完之后 当前位置不能和这个串之前的第一个字符相同 我们把这个东西
BZOJ3325 : [Scoi2013]密码
从以每一位为中心的回文串长度可以用Manacher倒推出$O(n)$对相等和不等关系. 将相等的用并查集维护,不等的连边. 然后输出方案时若还没被染过色,则求一个mex. #include<cstdio> #define N 200010 int n,m,i,x,r,p,f[N],g[N],fa[N],a[N],v[30]; struct E{int v;E*nxt;}*j,*h[N],pool[N*2],*cur=pool; inline int min(int a,int b){retur
2019.03.28 bzoj3325: [Scoi2013]密码(manacher+模拟)
传送门 题意: 现在有一个nnn个小写字母组成的字符串sss. 然后给你nnn个数aia_iai,aia_iai表示以sis_isi为中心的最长回文串串长. 再给你n−1n-1n−1个数bib_ibi,bib_ibi表示以si,si+1s_i,s_{i+1}si,si+1中间空隙为中心的最长回文串串长. 问你满足条件的所有sss串中字典序最小的那个. 思路: 可以根据aia_iai和bib_ibi逆模拟manachermanachermanacher的过程贪心构造这个sss.
BZOJ 3325 [SCOI2013]密码 (逆模拟Manacher+构造)
题目大意:给你一个字符串每个位置和相邻两个位置为回文中心的最长回文串长度,让你构造一个合法的字典序最小的字符串 挺有意思的构造题 首先按照$Manacher$的思想还原$p$数组 定义$f_{ij}$表示$i$位置不能放$j$这个字符 我们逆模拟$manacher$的构造过程,如果$i+p_{i}>maxR$,那么多出来这部分都要满足回文性质,然后更新$maxR$ 然后,因为回文不能继续扩展,所以$str[i+p_{i}]!=str[i-p_{i}]$,就在f数组里打上标记 每遍历到一个位置,如
对抗密码破解 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. 0x01 暴力破解 密码破解(严格地说应该是账号口令的破解),就是把散列值还原成明文口令.这貌似有不少方法,但事实上都得走一条路:暴力穷举.(也许你会说还可以查表,瞬间就出结果.虽然查表不用穷举,但表的制造过程仍然需要.查表只是将穷举提前了而已) 因为散列计算是单向的,是不可逆的,所以只能穷举.穷举
当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件夹(在你所安装的Mysql的bin文件夹下),复制路径地址. 2.Windows+R打开cmd命令提示符,进入上一步mysql.exe所在的文件夹. 3.输入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证.注意输入此命令之后命令行就无法操作了,
【WCF】使用“用户名/密码”验证的合理方法
我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然后在服务器端自定义一个消息拦截器来验证用户名和密码. 以老周不靠谱的学识水平认为,这样做不好,直接把明文而且敏感信息放在SOAP头中传输,这尺度实在太大了,太暴露了,广电局是不会允许的,虽然现在流行穿得越少越好,但那些是婊子的境界.像用户名密码这些重要信息,怎么能直接传输呢,这很容易被偷窥的. 其实
Centos 下 mysql root 密码重置
重置mysql密码的方法有很多,官网也提供了很方便的快捷操作办法,可参考资料 resetting permissions .本文重置密码的具体步骤如下: 一.停止MySQL(如果处于运行状态) #service mysqld stop 输出 Shutting down MySQL. [ OK ] 关于 #service mysqld stop 命令,可参考 CENTOS 6.5 平台离线编译安装 Mysql5.6.22. 二.启动MySQL_safe,如此以来便可不用密码登录MySQL # my
CentOS7 重置root密码
1- 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Control+x ,使用单用户模式启动 5 - 现在,可以使用下面的命令访问系统 chroot /sysroot 6 - 重置密码 passwd root 7 - 更新系统信息 touch /.autorelabel 8 - 退出chroot exit 9 - 重启你的系统 reboot 就是这样!
Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)
忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来一个root账号的临时密码,就像下面的图: 我第一次的时候以为是个秘钥啥的,就没有细看,直接关掉了,直到我在workbench中想要连接mysql时,试了各种密码都不行,才知道那个密码是有用的. 没办法,我就去网上找,基本上网上说的都是这样的解决办法: 我用这样的方法也确实进去了,不要密码,但是我也
从c#角度看万能密码SQL注入漏洞
以前学习渗透时,虽然也玩过万能密码SQL注入漏洞登陆网站后台,但仅仅会用,并不理解其原理. 今天学习c#数据库这一块,正好学到了这方面的知识,才明白原来是怎么回事. 众所周知的万能密码SQL注入漏洞,大家相信很熟悉了. 不懂得简单了解下,懂的大牛直接飘过即可. ***************************************************************************** 当我们用御剑之类的扫描器扫描到某些有这个万能密码SQL注入的漏洞网站后台后, 打开
C# 用SoapUI调试WCF服务接口(WCF中包含用户名密码的验证)
问题描述: 一般调试wcf程序可以直接建一个单元测试,直接调接口. 但是,这次,我还要测试在接口内的代码中看接收到的用户名密码是否正确,所以,单一的直接调用接口方法行不通, 然后就想办法通过soapUI输入用户名和密码调用接口调试. 解决方案: 1.建立IIS站点a,指向--src\WCF(右键项目名称->在文件资源管理器中打开文件夹,直接复制该打开的文件夹路径,建立站点,指向该路径) 2.设置站点a的IP为127.0.0.1 ,端口随便,无冲突即可 3.在IIS站点中找到服务所在,如"S
信息安全-2:python之hill密码算法[原创]
转发注明出处:http://www.cnblogs.com/0zcl/p/6106513.html 前言: hill密码算法我打算简要介绍就好,加密矩阵我用教材上的3*3矩阵,只做了加密,解密没有做,不过我觉得会加密就会解密的~~ 一.hill算法原理 hill密码是一种多字母替代密码,由数学学Leste Hill于1929年研制成功.该密码算法取m个连续的明文字母,并用m个密文字母代替,用向量或矩阵表示为(这里取m=3,C和P是长度为3的列向量,K是3*3矩阵): 即:C=KP
信息安全-1:python之playfair密码算法详解[原创]
转发注明出处: http://www.cnblogs.com/0zcl/p/6105825.html 一.基本概念 古典密码是基于字符替换的密码.加密技术有:Caesar(恺撒)密码.Vigenere(维吉尼尔)密码.Playfair密码.Hill密码-- 明文:未经过加密的信息:密文:加密后的信息 加密解密的过程:如下图 二.Caesar密码 这里我先简单讲下恺撒密码,咸觉挺简单的,后面再主要讲Playfair算法原理与编程. 基本原理: 在开拓罗马帝国的时候,恺撒担心信使会阅读他送给士兵的命
热门专题
Hbuilder介绍
driverstore能不能删除
vector int含有一个元素
AllowUsers 命令
shell 在指定日期执行脚本
robotframework 切换窗口
qt textedit 右键菜单
什么是封闭形式的运动学解
centos改root密码
nRF51822 内部RC
mac intellij idea 2022 激活码
layer.prompt 按钮点击事件
pycharm删除的文件在哪里
iOS VideoToolBox H264视频硬解码
linux双网卡bond0跟随网卡启动
html form post 未找到与请求URI
<a> on 点击世界
nginx防止未登录直接访问ip
cmd设置文件操作权限
运维常用的150个命令