結果

問題 No.1772 Many DELETEQs
ユーザー 👑 SPD_9X2
提出日時 2021-11-23 18:46:04
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,087 ms / 3,500 ms
コード長 1,611 bytes
コンパイル時間 389 ms
コンパイル使用メモリ 81,996 KB
実行使用メモリ 338,560 KB
最終ジャッジ日時 2024-06-25 15:37:43
合計ジャッジ時間 9,513 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 5
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

"""
Many Deleteqs v1.1
Q
dp[i][j] = ABiBAj使
AB,BA
i <= x , j <= y , i-j = x-y
i,j
x-y >= 0 x,y
ij
i
x-yindexiO(1)
dp2[a][b] = (i-j==a) i <= b dp[i][j]
"""
import sys
from sys import stdin
mod = 998244353
dp = [[0] * 4001 for i in range(4001)]
dp[0][0] = 1
for i in range(4001):
for j in range(4001):
if i != 0 and j != 0:
#add AA or BB
dp[i][j] += 2 * dp[i-1][j-1]
if i != 0:
#add AB
dp[i][j] += dp[i-1][j]
if j != 0:
dp[i][j] += dp[i][j-1]
dp[i][j] %= mod
dp2 = [ [0] * (4002) for i in range(4002) ]
for i in range(4001):
for j in range(i+1):
a = i - j
dp2[a][i] += dp[i][j]
dp2[a][i] %= mod
#
for a in range(4001):
for b in range(4000):
dp2[a][b+1] += dp2[a][b]
dp2[a][b+1] %= mod
Q = int(stdin.readline())
assert 1 <= Q <= 2*(10**5)
ANS = []
for loop in range(Q):
x,y = map(int,stdin.readline().split())
#
assert 1 <= x <= 4000
assert 1 <= y <= 4000
if x < y:
x,y = y,x
a = x-y
ilim = min(x , y+a)
ANS.append( dp2[a][ilim] )
print ("\n".join(map(str,ANS)))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0