Submission #5970190
Source Code Expand
MOD = 10**9 + 7
N,M = map(int,input().split())
S = [0] + [int(x) for x in input().split()]
T = [0] + [int(x) for x in input().split()]
# 最後に(n,m)でとる
dp = [[0] * (M+1) for _ in range(N+1)]
# 2次元累積和、(n,m) inclusive.
dp_cum = [[0] * (M+1) for _ in range(N+1)]
# empty
dp[0][0] = 1
dp_cum[0][0] = 1
for n in range(N+1):
dp_cum[n][0] = 1
for m in range(M+1):
dp_cum[0][m] = 1
for n in range(1,N+1):
for m in range(1,M+1):
if S[n] != T[m]:
dp[n][m] = 0
else:
# (n-1, m-1)までで作れてるやつから飛んでくる
dp[n][m] = dp_cum[n-1][m-1]
dp_cum[n][m] = dp_cum[n-1][m] + dp_cum[n][m-1] - dp_cum[n-1][m-1] + dp[n][m]
dp_cum[n][m] %= MOD
#print(dp)
#print(dp_cum)
answer = dp_cum[N][M]
print(answer)
Submission Info
| Submission Time | |
|---|---|
| Task | E - Common Subsequence |
| User | maspy |
| Language | PyPy3 (2.4.0) |
| Score | 500 |
| Code Size | 802 Byte |
| Status | AC |
| Exec Time | 398 ms |
| Memory | 104924 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 171 ms | 39024 KiB |
| 02.txt | AC | 168 ms | 38896 KiB |
| 03.txt | AC | 168 ms | 38896 KiB |
| 04.txt | AC | 168 ms | 38896 KiB |
| 05.txt | AC | 168 ms | 38896 KiB |
| 06.txt | AC | 356 ms | 101980 KiB |
| 07.txt | AC | 361 ms | 104028 KiB |
| 08.txt | AC | 353 ms | 100316 KiB |
| 09.txt | AC | 358 ms | 101340 KiB |
| 10.txt | AC | 352 ms | 99804 KiB |
| 11.txt | AC | 371 ms | 102620 KiB |
| 12.txt | AC | 361 ms | 102236 KiB |
| 13.txt | AC | 362 ms | 103132 KiB |
| 14.txt | AC | 368 ms | 103388 KiB |
| 15.txt | AC | 367 ms | 101340 KiB |
| 16.txt | AC | 398 ms | 99804 KiB |
| 17.txt | AC | 392 ms | 104540 KiB |
| 18.txt | AC | 368 ms | 99932 KiB |
| 19.txt | AC | 369 ms | 100700 KiB |
| 20.txt | AC | 366 ms | 100572 KiB |
| 21.txt | AC | 371 ms | 102620 KiB |
| 22.txt | AC | 368 ms | 101084 KiB |
| 23.txt | AC | 183 ms | 41072 KiB |
| 24.txt | AC | 350 ms | 96988 KiB |
| 25.txt | AC | 188 ms | 43120 KiB |
| 26.txt | AC | 187 ms | 42224 KiB |
| 27.txt | AC | 371 ms | 104924 KiB |
| 28.txt | AC | 374 ms | 104924 KiB |
| s1.txt | AC | 162 ms | 38256 KiB |
| s2.txt | AC | 163 ms | 38256 KiB |
| s3.txt | AC | 168 ms | 38256 KiB |
| s4.txt | AC | 165 ms | 38256 KiB |
| s5.txt | AC | 162 ms | 38256 KiB |