éºä¼åã¯ã€A
, T
, G
, C
ã‹ã‚‰ãªã‚‹æ–‡å—列ã§ã™ã€‚
ã“ã®ä¸–ç•Œã®éºä¼åã¯å¥‡å¦™ãªã“ã¨ã«ã€ã‚る構文è¦å‰‡ã«å¾“ã†ã“ã¨ãŒçŸ¥ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚
構文è¦å‰‡ã¯ã€æ¬¡ã®ã‚ˆã†ãªå½¢ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
éžçµ‚端記å·1: 記å·1_1 記å·1_2 ... 記å·1_n1 éžçµ‚端記å·2: 記å·2_1 記å·2_2 ... 記å·2_n2 ... éžçµ‚端記å·m: 記å·m_1 記å·m_2 ... 記å·m_nm
記å·ã¯éžçµ‚端記å·ã¾ãŸã¯çµ‚端記å·ã®ã©ã¡ã‚‰ã‹ã§ã™ã€‚
éžçµ‚端記å·ã¯å°æ–‡å—æ–‡å—列ã§è¡¨ã•ã‚Œã€çµ‚端記å·ã¯A
, T
, G
, C
ã®ã†ã¡ã®ã„ãã¤ã‹ã®æ–‡å—ãŒã€"[
"ã¨"]
"ã«å›²ã¾ã‚ŒãŸæ–‡å—列ã§è¡¨ã•ã‚Œã¾ã™ã€‚
構文è¦å‰‡ã®ä¾‹ã¯æ¬¡ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
dna: a a b b a: [AT] b: [GC]
"éžçµ‚端記å·i: 記å·i_1 記å·i_2 ... 記å·i_ni
" ã‚’éžçµ‚ç«¯è¨˜å· i ã®ãƒ«ãƒ¼ãƒ«ã¨å‘¼ã³ã€ãƒ«ãƒ¼ãƒ«ã¯ã€æ§‹æ–‡è¦å‰‡ã«ç¾ã‚Œã‚‹å„éžçµ‚端記å·ã«å¯¾ã—ã¦ã€ã¡ã‚‡ã†ã© 1 ã¤ã¥ã¤å˜åœ¨ã—ã¾ã™ã€‚
æ–‡å—列 s ãŒéžçµ‚ç«¯è¨˜å· i ã«ã€Œãƒžãƒƒãƒã™ã‚‹
ã€ã¨ã¯ã€ s = s1 + s2 + ... + sni ã¨ãªã‚‹ã‚ˆã†ãª s ã®éƒ¨åˆ†æ–‡å—列 {sj} ãŒå˜åœ¨ã—ã€sj (1 ≤ j ≤ ni)ãŒãƒ«ãƒ¼ãƒ«å†…ã®è¨˜å· j ã«ãƒžãƒƒãƒã™ã‚‹ã“ã¨ã‚’ã„ã„ã¾ã™ã€‚
æ–‡å—列 s ãŒçµ‚端記å·ã«ã€Œãƒžãƒƒãƒã™ã‚‹
ã€ã¨ã¯ã€æ–‡å—列㌠1 æ–‡å—ã‹ã‚‰ãªã‚Šã€ãã®æ–‡å—ãŒçµ‚端記å·ã‚’表ã™æ–‡å—列ã«å«ã¾ã‚Œã‚‹ã“ã¨ã‚’ã„ã„ã¾ã™ã€‚
æ–‡å—列ãŒæ§‹æ–‡è¦å‰‡ã«å¾“ã†ã¨ã¯ã€éžçµ‚ç«¯è¨˜å· 1 ã«ãã®æ–‡å—列ãŒãƒžãƒƒãƒã™ã‚‹ã“ã¨ã‚’ã„ã„ã¾ã™ã€‚
ルール i ã¯ã€è¨˜å·ã®ã†ã¡ã«ã€éžçµ‚ç«¯è¨˜å· j (j ≤ i) ã‚’å«ã¿ã¾ã›ã‚“。
構文è¦å‰‡ã¨ã€4ã¤ã®æ•´æ•° Na , Nt, Ng, Nc ãŒä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚ 構文è¦å‰‡ã«å¾“ã„ã€A ã‚’ã¡ã‚‡ã†ã© Na 個ã€T ã‚’ã¡ã‚‡ã†ã© Nt 個ã€G ã‚’ã¡ã‚‡ã†ã© Ng 個ã€C ã‚’ã¡ã‚‡ã†ã© Nc 個å«ã‚€ã‚ˆã†ãªéºä¼åã®ç·æ•°ã‚’ 1,000,000,007 ã§å‰²ã£ãŸä½™ã‚Šã‚’求ã‚ãªã•ã„。
Na Nt Ng Nc
m
éžçµ‚端記å·1: è¨˜å· 11 è¨˜å· 12 ... è¨˜å· 1n1
éžçµ‚端記å·2: è¨˜å· 21 è¨˜å· 22 ... è¨˜å· 2n2
...
éžçµ‚ç«¯è¨˜å· m: è¨˜å· m1 è¨˜å· m2 ... è¨˜å· mnm
0 ≤ Na, Nt, Ng, Nc ≤ 50
1 ≤ m ≤ 50
1 ≤ ni ≤ 10
1 ≤ 記å·ã‚’表ã™æ–‡å—列ã®é•·ã• ≤ 20 (※記å·ã«ãƒžãƒƒãƒã™ã‚‹æ–‡å—列ã®é•·ã•ã§ã¯ãªã„ã“ã¨ã«æ³¨æ„)
ç·æ•°ã‚’ 1,000,000,007 ã§å‰²ã£ãŸä½™ã‚Š
1 0 1 0 3 dna: a b a: [AT] b: [GC]
1
"AG"ã®ä¸€ã¤ã§ã™ã€‚
1 1 1 2 1 k: [ATG] [ATG] [ATG] [C] [C]
6
"ATGCC", "AGTCC", "TAGCC", "TGACC", "GATCC", "GTACC"ã®6ã¤ã§ã™ã€‚
3 1 1 1 3 inv: at b b b at: [ATG] b b: [C]
0