码迷,mamicode.com
首页 > 其他好文 > 详细

G - 密码 kmp、贪心、manachar等等等等

时间:2016-04-29 22:05:49      阅读:366      评论:0      收藏:0      [点我收藏+]

标签:

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代码贴一下吧,,,,(就是这么懒 = = 你咬我啊):

技术分享
 1 int manachar(int m)
 2 {
 3         int ans=0;
 4         int id;//中心
 5         int mx;//延伸宽度
 6         id=-1,mx=-1;
 7         for (int i=1;i<=m;i++)
 8         {
 9                 if (id+mx>=i)
10                         len[i]=min(len[id*2-i],id+mx-i);
11                 while (i-len[i]-1>=0 && i+len[i]+1<=m && s2[i-len[i]-1]==s2[i+len[i]+1]) //这道题就是把这里的查询等等改成连边,这样就直接把并查集复杂度降低到O(n^2)级  撒撒撒?还是略蒙= =
12                         len[i]++;
13                 if (i+len[i]>id+mx)
14                         id=i,mx=len[i];
15                 ans=max(ans,len[i]);
16         }
17         return ans;
18 }
View Code

 

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

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

技术分享

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

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

技术分享

G - 密码 kmp、贪心、manachar等等等等

标签:

原文地址:http://www.cnblogs.com/zhangone/p/5447523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!