青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

a tutorial on computer science

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  21 隨筆 :: 0 文章 :: 17 評論 :: 0 Trackbacks
    給出一個長度為N的字符串,求出它的最小表示。
    算法是線性的,具體做法是設置兩個指針fst,sec。fst代表當前找到的最小的字符串表示,sec表示下一個要匹配的初始位置。暴力的做法就是每次sec向后面移動一位o(N^2)的算法。線性的做法是根據前面的結果移動fst和sec。當我們比較fst和sec形成的字符串的時候,有三種情況。第一種是比較到了第fst+len-1位和sec+len-1位置,相等。那么我們發現,fst和sec相等,不用多說,fst要移動到sec位置,sec移動到sec+1位置。這個比較明顯。然后是比較到第i位置的時候,str[fst+i] > str[ (sec + i )%len],我們可以看到sec現在比fst小了,那么fst = sec, sec++。這也比較明顯。然后是str[fst+i] < str[ (sec + i )%len],這樣,我們可以看到,以fst+k(k<i)的字符串和fst比,都比fst大,然后sec+i也比fst+i大,那么可知,sec到sec+i的那些玩意就不用再和fst比了,他們肯定比fst小。sec = sec+i+1。好了,其實是比較明顯的一個算法,推一下就差不多了。第一次寫錯在了當相等的時候直接返回了,汗。寫的還算干凈。#include <cstdio>
#include <cstring>

const int maxn = 1001000;

char str[maxn];

int getans(int tlen)
{
  int len = tlen;
  int fst = 0,sec = 1,i;

  while(sec < len)
  {
    for(i=0;i<len;i++)
    {
      if(str[fst+i] != str[(sec+i)%len])
        break;
    }
    if(i == len)
    {
          fst = sec;
          sec = sec + 1;
    }
    else if(str[fst+i] < str[(sec+i)%len])
    {
       sec = sec + i + 1;
    }
    else if(str[fst+i] > str[(sec+i)%len])
     {
       fst = sec;
       sec = sec + 1;
     }
  }
  return fst;
}

int main()
{
  int tcase,tlen;
  scanf("%d",&tcase);
  while(tcase--)
  {
    scanf("%d%s",&tlen,str);
    int ans = getans(tlen);
    printf("%d\n",ans);
  }
  return 0;
}
posted on 2012-08-02 15:36 bigrabbit 閱讀(987) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品久久久久久99热软件| 久久久久久国产精品mv| 国产精品系列在线| 国产精品igao视频网网址不卡日韩| 亚洲麻豆国产自偷在线| 亚洲国产精品免费| 在线视频日韩| 久久婷婷一区| 欧美在线播放视频| 久久久国产精品一区| 欧美黄色网络| 国模私拍视频一区| 激情欧美一区二区三区| 亚洲欧美日本精品| 欧美福利电影网| 先锋资源久久| 欧美日韩亚洲视频一区| 亚洲精品久久久久久久久| 欧美一区二区三区免费看| 亚洲第一在线综合在线| 亚洲观看高清完整版在线观看| 亚洲国产精品久久久久| 久久精品国产成人| 亚洲一区在线观看免费观看电影高清| 久久成人精品一区二区三区| 国产精品成人免费视频| 黑人一区二区三区四区五区| 久久激情久久| 欧美在线视频观看| 欧美激情性爽国产精品17p| 麻豆成人av| 午夜欧美大尺度福利影院在线看| 久久中文字幕一区| 一区在线观看| 国产欧美视频在线观看| 欧美色精品在线视频| 一区二区三区精品国产| 亚洲欧洲免费视频| 老司机成人网| 亚洲最新色图| 最新国产成人在线观看| 欧美88av| 亚洲摸下面视频| 亚洲视频一区二区免费在线观看| 欧美精品一区二区三| 亚洲一区视频在线| 91久久综合亚洲鲁鲁五月天| 亚洲国产精品高清久久久| 国产精品一区二区三区久久 | 久久免费视频网| 美女爽到呻吟久久久久| 在线视频日韩精品| 久久精品一二三区| 亚洲影院高清在线| 久久手机精品视频| 欧美中文字幕视频在线观看| 国产精品视频一区二区三区| 欧美激情视频一区二区三区在线播放 | 亚洲日韩欧美视频一区| 久久综合九色| 国内不卡一区二区三区| 亚洲欧美日韩直播| 欧美成人午夜激情在线| 欧美午夜精品久久久久久超碰| 久热精品视频在线免费观看 | 国产精品一级| 老司机成人在线视频| 亚洲欧洲日本国产| 欧美日韩国产123区| 亚洲一区综合| 久久国产成人| 亚洲精品少妇网址| 中文日韩欧美| 欧美日韩国产不卡在线看| 久久久久看片| 韩日精品视频一区| 欧美一区二区三区视频免费| 亚洲开发第一视频在线播放| 亚洲一区在线观看免费观看电影高清 | 国产日韩1区| 亚洲美女免费精品视频在线观看| 亚洲韩日在线| 亚洲一区二区三区高清 | 亚洲视频每日更新| 日韩亚洲国产精品| 午夜性色一区二区三区免费视频| 午夜精品福利一区二区蜜股av| 久久精品国产综合精品| 这里只有精品视频| 亚洲在线中文字幕| 久久蜜桃资源一区二区老牛 | 亚洲人成在线播放网站岛国| 日韩午夜av| 久久成人资源| 亚洲高清精品中出| 亚洲免费一级电影| 欧美久久久久久| 亚洲欧美久久久久一区二区三区| 欧美日韩精品一区二区天天拍小说 | 久久精品盗摄| 在线看片一区| 久久精品卡一| 欧美在线精品一区| 欧美日韩小视频| 亚洲日本免费电影| 国产精品亚洲综合色区韩国| 亚洲人成亚洲人成在线观看图片| 在线看欧美视频| 日韩视频精品| 欧美剧在线免费观看网站| 免费在线欧美黄色| 亚洲国产三级| 欧美日韩视频专区在线播放| 99国产精品久久久久久久| 亚洲欧美成人一区二区三区| 国产精品入口尤物| 欧美中文字幕不卡| 亚洲自拍电影| 一区二区三区四区五区视频| 欧美日韩一区二区免费视频| 亚洲欧美不卡| 欧美xxx成人| 亚洲午夜激情网页| 国产日韩一区二区三区在线| 久久亚洲美女| 中文一区字幕| 免费看黄裸体一级大秀欧美| 99这里有精品| 国产农村妇女毛片精品久久麻豆 | 国产女主播视频一区二区| 欧美中文字幕视频在线观看| 先锋a资源在线看亚洲| 欧美美女bbbb| 日韩亚洲国产精品| 久久国产福利| 亚洲自拍另类| 国产日韩欧美一区二区三区在线观看 | 免费不卡中文字幕视频| 欧美风情在线| 国产精品白丝jk黑袜喷水| 久久国产综合精品| 欧美高清视频在线| 亚洲午夜影视影院在线观看| 麻豆91精品| 亚洲一区精品电影| 在线精品视频免费观看| 国产精品一区免费视频| 久久嫩草精品久久久精品一| 午夜精品久久| 一区二区欧美视频| 亚洲成色www久久网站| 欧美在线视频免费播放| 一区二区三区久久网| 伊人男人综合视频网| 国产精品午夜视频| 欧美肉体xxxx裸体137大胆| 香蕉久久夜色精品国产使用方法| 免费不卡中文字幕视频| 亚洲一区二区精品在线| 怡红院精品视频在线观看极品| 欧美成人一区二区三区| 亚洲网站视频福利| 欧美国产日韩a欧美在线观看| 在线视频日韩精品| 在线看视频不卡| 国产精品在线看| 欧美乱妇高清无乱码| 免费国产自线拍一欧美视频| 久久久久免费| 久久在线91| 久久深夜福利免费观看| 久久不见久久见免费视频1| 99国产精品国产精品久久| 欧美亚日韩国产aⅴ精品中极品| 欧美波霸影院| 米奇777在线欧美播放| 久久久久久久尹人综合网亚洲 | 久久久久久久一区二区三区| 欧美影院精品一区| 亚洲欧美综合另类中字| 亚洲九九精品| 欧美激情一区二区三级高清视频| 毛片一区二区三区| 在线观看视频亚洲| 亚洲一区二区高清| 日韩一级免费观看| 欧美电影资源| 久久久久88色偷偷免费| 欧美日本一区二区三区 | 国产精品日本精品| 亚洲欧美在线视频观看| 中文在线不卡| 久久蜜桃香蕉精品一区二区三区| 久久久久久网址| 免费欧美高清视频| 亚洲高清不卡在线观看| 亚洲人成77777在线观看网| 亚洲精选一区二区| 久久精品视频在线播放| 国产精品视频网址|