G - 密码

Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu

Submit Status
 
DescriptionFish是一条生活在海里的鱼。有一天他很无聊,就到处去寻宝。他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进。
 
通过翻阅古籍,Fish得知了这个密码的相关信息:
1.该密码的长度为N
2.密码仅含小写字母
3.以每一个字符为中心的最长回文串长度。
4.以每两个相邻字符的间隙为中心的最长回文串长度。
很快Fish发现可能有无数种满足条件的密码。经过分析,他觉得这些密码中字典序最小的一个最有可能是答案,你能帮他找到这个密码么?
注意:
对于两个串A和B,如果它们的前i个字符都相同,而A的第i+1个字符比B的第i+1个字符小, 
那么认为是则称密码A的字典序小于密码B的字典序,例如字符串\textsf{abc}字典序小于字符串\textsf{acb}。 
如果密码A的字典序比其他所有满足条件的密码的字典序都小,则密码A是这些密码中字典序最小的一个。

Input:

输入由三行组成。

第一行仅含一个整数N,表示密码的长度。

第二行包含N个整数,表示以每个字符为中心的最长回文串长度。

第三行包含N−1个整数,表示每两个相邻字符的间隙为中心的最长回文串长度。

对于20%的数据,1≤n≤100。

另有30%的数据,1≤n≤1000。

最后50%的数据,1≤n≤105。

Output:

输出仅一行。输出满足条件的最小字典序密码。古籍中的信息是一定正确的,故一定存在满足条件的密码。

Sample Input:


1 1 1 
0 0



1 3 1 
0 0


1 3 1 
2 2

Sample Output:

abc

aba

aaa

 

Hint

第一组样例:

符合条件的还有abdabeabf……zyx,但是字典序最小的为abc

 
第二组样例:

第三组样例:

------------------------------------------------------------20:30------------------------------------------------------------

正在听学长讲这道题,,略蒙蔽,,先开坑,等听懂了,我或许会继续写这个博客的


刚刚听学长讲,半懂半不懂的 (=_= ),, 大约需要用到并查集啊,贪心啊,manachar啊等等等,好像现在来不及在这里写这道题代码了 = =(纯属因为蒟蒻懒而已)我就把学长今天的manachar代码贴一下吧,,,,(就是这么懒 = = 你咬我啊):

 int manachar(int m)
{
int ans=;
int id;//中心
int mx;//延伸宽度
id=-,mx=-;
for (int i=;i<=m;i++)
{
if (id+mx>=i)
len[i]=min(len[id*-i],id+mx-i);
while (i-len[i]->= && i+len[i]+<=m && s2[i-len[i]-]==s2[i+len[i]+]) //这道题就是把这里的查询等等改成连边,这样就直接把并查集复杂度降低到O(n^2)级 撒撒撒?还是略蒙= =
len[i]++;
if (i+len[i]>id+mx)
id=i,mx=len[i];
ans=max(ans,len[i]);
}
return ans;
}

最后来一张昨天学长介绍的那个神奇又强大的vim的截图,,
因为有在linux上用vim的经验,瞬间就上手了,,话说这个软件如果真的用熟了真的真的是太方便了,不过要是没用过第一次接触的话用起来还真难受 = =

所以, 以后听从这个NOI金牌的建议,就不用dev-c++了,hhhhhhhhhhh解放了

个人感觉自己下午google上找到的配色方案还是挺萌哒  

(华电机房可以直接科学上网,网速还贼快,秒秒钟下完android studio = = 真不错 )

————————————————09:04:02 2016-06-27更:

用了一个多月,感觉还是现在这个配色方案好看

G - 密码 kmp、贪心、manachar等等等等的更多相关文章

  1. 2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机)

    2021.11.09 P4824 [USACO15FEB]Censoring S与P3121 [USACO15FEB]Censoring G(KMP&&AC自动机) https://w ...

  2. BZOJ4560 JLOI2016字符串覆盖(kmp+贪心+状压dp+单调队列)

    首先kmp求出每个子串能放在哪些位置.接下来的两部分贪心和状压都可以,各取比较方便的. 最大值考虑贪心.考虑枚举子串的左端点出现顺序,在此基础上每个子串的位置肯定都应该尽量靠前,有是否与上个子串有交两 ...

  3. [CSP-S模拟测试]:括号密码(贪心)

    题目描述 在“无限神机”的核心上,有一个奇怪的括号密码,密码初始已经有一个括号序列,有$n$个限制条件,每个限制条件描述为$l_i$和$r_i$,表示区间$[l_i,r_i]$的括号序列必须合法.调整 ...

  4. UESTC--1251--谕神的密码(贪心)

     谕神的密码 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Submit Status ...

  5. 2017湘潭大学邀请赛G题(贪心+优先队列)

    参考博客:http://www.cnblogs.com/chendl111/p/6891770.html 题目链接:https://www.icpc.camp/contests/4mYguiUR8k0 ...

  6. HDU 4468 Spy(KMP+贪心)(2012 Asia Chengdu Regional Contest)

    Description “Be subtle! Be subtle! And use your spies for every kind of business. ”― Sun Tzu“A spy w ...

  7. 牛客多校第八场 G Gemstones 栈/贪心

    题意: 对于一个序列,把可以把连着三个相同的字母拿走,问最多拿走多少组. 题解: 直接模拟栈,三个栈顶元素相同则答案+1,并弹出栈 #include<bits/stdc++.h> usin ...

  8. SQLPULS : 密码中有特殊字符的处理方法

    前日在使用SQLPLUS访问oracle数据库时,系统提示密码过期,需要更新密码.于是不假思索的修改密码为xxx@2016(估计当时脑子抽风了),造成了杯具的开始. 再次进入SQLPLUS,输入用户名 ...

  9. js动态判断密码强度&&实用的 jQuery 代码片段

    // 网上拷贝的代码,效果不太好需要自己调整<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

随机推荐

  1. 本地计算机上的OracleOraDb11g_home2TNSListener服务启动又停止了。

    电脑上装了oracle后启动很慢,然后我就不oracle服务设置成手动启动,没想到今天启动的时候居然报错 折腾了一上午,终于搞定, 在环境变量中把ORACLE_HOME 设置成D:\app\XL\pr ...

  2. Lucene学习总结之七:Lucene搜索过程解析

    一.Lucene搜索过程总论 搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程. 其可用如下图示: 总共包括以下几个过程: ...

  3. python笔记之ZipFile模块

    python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...

  4. x位全排列(next_permutation)

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...

  5. oc语言--语法

    一.OC简介 1.简介 它是C语言的基础上,增加了一层面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发mac OS X平台和IOS平台的应用程序 2 ...

  6. real server 的一个启动脚本例子

    real server 的vip 启动脚本 #!/bin/bash #chkconfig: #description: real server init script VIP=192.168.80.8 ...

  7. MSP430F149模拟IIC读写24C02程序

    板子上设置了EEPROM存储器,型号为AT24C02.板子的硬件连接为:SCL--->P2.4,SDA--->P2.5.直接了当,贴上程序! ======================= ...

  8. OpenCV图片类cv::Mat和QImage之间进行转换(好多相关文章)

    在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ## ...

  9. Android 匿名共享内存Java接口分析

    在Android 匿名共享内存驱动源码分析中介绍了匿名共享内存的驱动实现过程,本文在Android匿名共享内存驱动基础上,介绍Android匿名共享内存对外Android系统的匿名共享内存子系统的主体 ...

  10. java设计模式--创建模式--工厂方法

    工厂方法定义: 工厂方法 概述 定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 适用性 .当一个类不知道它所必须创建的对象的类的时候. ...