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. orcl 行转列的存储过程

    CREATE or replace PROCEDURE sp_fixWage AUTHID CURRENT_USER as --此处需要注意的 authid current_user 这个属性  详细 ...

  2. Qss样式(二)

    Qss 其实就是一段文本,当然得按一定格式来写.下面请看Qss的语法格式: 选择器 { 属性1:值:属性2:值:--属性n:值:} 对应上篇文章的Qss样式: 现在我们可以来解释这段话的意思了: 对应 ...

  3. 通过js引入当前所需要的js,css等

    在我们web前端页面中经常会用到许多外部的js,css文件,那么问题来了,怎样才能一次性引入? 通过js便可实现 走码: //创建一个init.js文件 var jsUrls = "js/j ...

  4. Python多线程同步命令行模拟进度显示

    最近在一个Python(3.5)的小项目中需要用到多线程加快处理速度,同时需要显示进度,于是查了些资料找到几个实现方法:线程池的map-reduce和Queue结合线程的实现.这里简单的实例介绍一下Q ...

  5. php5.5新特性之yield理解

    今天,在阅读别人代码时,其中出现了一个陌生的关键字yield,想一探究竟,于是找到:http://php.net/manual/zh/language.generators.overview.php ...

  6. [C++程序设计]返回指针值的函数

    定义指针函数的一般形式为 类型名 *函数名(参数表列); 例如 int *a(int x,int y);

  7. Smallest Difference(POJ 2718)

    Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6740   Accepted: 18 ...

  8. Mac OSX下面的博客客户端Marsedit使用

       在windows下面,有一个很好用的博客客户端,叫做windows live writer,不得不感叹,其所见即所得的方面真的是很方便,特别是还可以方便的把word上的内容直接帖上去,包括文件中 ...

  9. Unix/Linux环境C编程入门教程(33) 命令和鼠标管理用户和组

    Linux是一个多用户.多任务的实时操作系统,允许多人同时访问计算机, 并同时运行多个任务.UNIX系统具有稳定.高效.安全.方便.功能强大等诸多优点,自20世纪70年代开始便运行在许多大型和小型计算 ...

  10. 百度地图V1.5 LocalSearch增加浮动窗体的操作内容

     1.初始化LocalSearch控件 LocalSearch = new BMap.LocalSearch(map, { renderOptions : { map : map, panel : & ...