zoukankan      html  css  js  c++  java
  • G

    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的字典序,例如字符串 extsf{abc}字典序小于字符串 extsf{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 = = 真不错 )

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

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

  • 相关阅读:
    皮皮书屋要关掉了
    Java容器类接口:Iterator,Collection,Map
    Java容器类概述
    Linux Mint下安装JDK
    [zz]论程序员
    Java私有构造器
    List of Free Programming Books
    5种你未必知道的JavaScript和CSS交互的方法
    【HTTP】GET和POST的区别
    ASP.NET转换人民币大小金额
  • 原文地址:https://www.cnblogs.com/zhangone/p/5447523.html
Copyright © 2011-2022 走看看