ã“ã“ã¯å…¨äººé¡žãŒç«¶æŠ€ãƒ—ãƒã‚°ãƒ©ãƒžãƒ¼ã«ãªã£ãŸä¸–界。ã“ã®ä¸–ç•Œã§ã¯ã¿ãªã•ã‚“ã®ç”Ÿãã‚‹ç¾ä»£ã§ã¯è€ƒãˆã‚‰ã‚Œãªã„よã†ãªç¿’æ…£ãŒå¤šæ•°å˜åœ¨ã™ã‚‹ã€‚ãã®ä¸ã®ä¸€ã¤ã«ã€ä¸¡è¦ªã€ç‰¹ã«æ¯è¦ªã«æ„Ÿè¬ã®è¨¼ã‚’表ã™æ™‚ã¯ã€æ–‡å—列をé€ã‚‹ã¨ã„ã†é¢¨ç¿’ãŒã‚る。é€ã‚‹æ–‡å—列ã¨ã—ã¦ã©ã®ã‚ˆã†ãªæ–‡å—列ãŒãµã•ã‚ã—ã„ã‹ã¯åœ°åŸŸå·®ãŒã‚ã‚‹ãŒã€åŒ—ã®å¤§åœ°åŒ—æµ·é“ã§ã¯ã€ã§ãã‚‹ã ã‘シンプルãªæ–‡å—列ãŒè´ˆã‚Šç‰©ã¨ã—ã¦ãµã•ã‚ã—ã„。ã¾ãŸã€é€ã‚‰ã‚ŒãŸå´ã®æ¯è¦ªã¯åä¾›ã«è¿”礼ã¨ã—ã¦ã€é€ã‚‰ã‚ŒãŸæ–‡å—列ãŒã©ã‚Œã»ã©ç¾Žã—ã„ã‹ã‚’ç”ãˆã‚‹å¿…è¦ãŒã‚る。
ã•ã¦ã€ä»Šã‚ãªãŸã¯1å…ã®æ¯è¦ªã‹ã‚‰ç›¸è«‡ã‚’å—ã‘ã¦ã„る。ãã®æ¯è¦ªã¯åä¾›ã‹ã‚‰ç´ 晴らã—ãã†ãªæ–‡å—列をもらã£ãŸã®ã ãŒã€ã©ã‚Œãらã„ç´ æ™´ã‚‰ã—ã„ã®ã‹ã†ã¾ã測れãªã„ã§ã„ã‚‹ãã†ã 。北海é“ã®é¢¨ç¿’ã§ã¯ã€æ¯è¦ªã«é€ã‚‹æ–‡å—列 T ã¯ã‚ã‚‹æ–‡å—列 S を往復ã•ã›ã¦ä½œã‚‹ã“ã¨ã«ãªã£ã¦ã„る。ã“ã®æ™‚〠S ãŒã§ãã‚‹ã ã‘çŸã„æ–‡å—列ãªã‚‰ã°ã‚ˆã‚Šç´ 晴らã—ã„æ–‡å—列 T ã§ã‚る。æ¯è¦ªã¯åä¾›ã®é ‘張りã«å ±ã„ã‚‹ãŸã‚ã€T を作るã“ã¨ãŒã§ãã‚‹æ–‡å—列ã®ä¸ã§ã€æœ€çŸã®æ–‡å—列を見ã¤ã‘ã¦ã‚ã’ãŸã„ãŒã€ãã‚Œã¯ãªã‹ãªã‹é›£ã—ã„ã¨ã®ã“ã¨ã 。ã‚ãªãŸã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°èƒ½åŠ›ã‚’駆使ã—ã¦æ¯è¦ªã®æ‚©ã¿ã‚’解決ã—ã¦æ¬²ã—ã„。
é•·ã•ãŒ 2 以上ã®æ–‡å—列 S ã‹ã‚‰ã€ä»¥ä¸‹ã®ãƒ«ãƒ¼ãƒ«ã«å¾“ã£ã¦é•·ã• N ã®æ–‡å—列 T を生æˆã™ã‚‹ã€‚ã“ã“ã§ã€ S ã®æ–‡å—列長を K ã¨ã—ã€T[i] ã¯æ–‡å—列 T ã® i 番目ã®æ–‡å—を表ã™ã€‚ã“ã“ã§ã€ T ã®å…ˆé æ–‡å—㯠0 番目ã®æ–‡å—ã¨ã™ã‚‹ã€‚
T[i] = S[K - 1 - | (i $\bmod$ (2K - 2)) - K + 1 |]
T ã®ã¿ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ã〠T を生æˆã™ã‚‹æ–‡å—列ã¯è¤‡æ•°è€ƒãˆã‚‰ã‚Œã‚‹ã€‚ ãれらã®æ–‡å—列ã®ä¸ã§æœ€å°ã®æ–‡å—列長 K_{min} を出力ã›ã‚ˆã€‚
N T
T を生æˆã™ã‚‹é•·ã•æœ€å°ã®æ–‡å—列 S ã®é•·ã• K_{min} を出力ã—ã¦ãã ã•ã„。
6 tabata
3
tabata
ã€tabat
ã€tab
ã® 3 ã¤ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ãŒã€ tab
ãŒé•·ã•æœ€å°ãªã®ã§ã€ç”ãˆã¯ 3 ã§ã™ã€‚
4 hcpc
3
60 aaaaaabbbbbbbbbbbaaaaaaaaaaabbbbbbbbbbbaaaaaaaaaaabbbbbbbbbb
12