英å°æ–‡å—ã®ã¿ã‹ã‚‰ãªã‚‹æ–‡å—列 S ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã®ã§ã€ã“ã®æ–‡å—列 S ã®é€£ç¶šã¨ã¯é™ã‚‰ãªã„部分列ã§ã‚ã£ã¦ã€å›žæ–‡ã§ã‚ã‚‹ã‚‚ã®ã¯ä½•ç¨®é¡žã‚ã‚‹ã‹ã‚’求ã‚ã¦ãã ã•ã„。
ã“ã“ã§ã€S ã®é€£ç¶šã¨ã¯é™ã‚‰ãªã„部分列ã¨ã¯ã€å…ƒã®æ–‡å—列 S ã‹ã‚‰ 1 æ–‡å—以上 |S| æ–‡å—以下を任æ„ã«é¸æŠžã— (é¸æŠžã™ã‚‹ãã‚Œãžã‚Œã®æ–‡å—ã®ä½ç½®ã¯éžé€£ç¶šã§ã‚‚良ã„)ã€ãれらを元ã®é †ç•ªé€šã‚Šã«é€£çµã•ã›ã¦ã§ããŸæ–‡å—列ã®ã“ã¨ã‚’指ã—ã¾ã™ã€‚ã“ã®å•é¡Œã«ãŠã„ã¦ã€ç©ºæ–‡å—列ã¯éƒ¨åˆ†åˆ—ã¨ã—ã¦èªã‚られãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
ã¾ãŸã€æ–‡å—列 X ãŒå›žæ–‡ã§ã‚ã‚‹ã¨ã¯ã€å…ƒã®æ–‡å—列 X ã¨ã€X ã‚’å転ã—ãŸæ–‡å—列 X’ ãŒç‰ã—ã„ã“ã¨ã‚’指ã—ã¾ã™ã€‚
ã•ã‚‰ã«ã€ç•°ãªã‚‹éƒ¨åˆ†åˆ—ã®ã¨ã‚Šã‹ãŸã®çµæžœåŒã˜å›žæ–‡ãŒç”Ÿæˆã•ã‚ŒãŸã¨ã—ã¦ã‚‚ã€ãã‚Œã¯é‡è¤‡ã—ã¦æ•°ãˆãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。例ãˆã° S = acpc
ã§ã‚ã‚‹å ´åˆã€ 2 æ–‡å—ç›®ã®ã¿ã‹ã‚‰ãªã‚‹éƒ¨åˆ†åˆ—ã¨ã€4 æ–‡å—ç›®ã®ã¿ã‹ã‚‰ãªã‚‹éƒ¨åˆ†åˆ—ã¯ã©ã¡ã‚‰ã‚‚回文 c
ã§ã™ãŒã€ã“ã‚Œã¯è¤‡æ•°å›žæ•°ãˆãšã€åˆã‚ã›ã¦ä¸€åº¦ã ã‘æ•°ãˆã‚‹ã“ã¨ã¨ã—ã¾ã™ã€‚
ç”ãˆã¯éžå¸¸ã«å¤§ãããªã‚‹ã“ã¨ãŒã‚ã‚‹ã®ã§ã€ 1,000,000,007 ã§å‰²ã£ãŸä½™ã‚Šã‚’出力ã—ã¦ãã ã•ã„。
S
acpc
5
æ–‡å—列 acpc
ã®é€£ç¶šã¨ã¯é™ã‚‰ãªã„部分列ã§ã‚ã£ã¦å›žæ–‡ã§ã‚ã‚‹ã‚‚ã®ã¯ã€ a
, c
, cc
, cpc
, p
ã® 5 種類ã§ã™ã€‚部分列ã®ç¨®é¡žæ•°ã‚’æ•°ãˆã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
z
1
æ¡ä»¶ã‚’満ãŸã™éƒ¨åˆ†åˆ—㯠z
ã®ã¿ã§ã™ã€‚空文å—列ã¯éƒ¨åˆ†åˆ—ã¨ã—ã¦èªã‚られãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
madokamagica
28