問題 G2 とは制約のみが異なります
問題文
非負整数 n と 正整数 x についての関数 fn(x) を次のように定めます.
fn(x):=⎩⎨⎧1k=1∑xfn−1(k)ifn=0ifn≥1
T 個のテストケースが与えられます.
t(1≤t≤T) 個目のテストケースでは,N=Nt,X=Xt として下記の問題を解いてください.
- 非負整数 N と正整数 X について, fN(X) の値を 998244353 で割ったあまりを求めてください.
制約
- 1≤T≤500
- 0≤N≤300
- 1≤X≤300
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる.
出力
T 行出力せよ.
t(1≤t≤T) 行目には t 個目のテストケースに対する答えを出力せよ.
注意
Python で解答しようとしている方へ: CPython はループが遅く,PyPy は再帰が遅いとされています.TLE には十分に注意してください.
サンプル
入力例1
11
0 1
1 1
1 3
2 6
2 10
6 8
5 14
12 7
14 21
0 300
300 1
出力例1
1
1
3
21
55
1716
8568
18564
393731287
1
1
たとえば,
f0(1)=1f1(3)=k=1∑3f0(k)=f0(1)+f0(2)+f0(3)=3f2(6)=k=1∑6f1(k)=f1(1)+f1(2)+⋯+f1(6)=21
などが成り立ちます.
998244353 で割ったあまりを出力することを忘れないようにしてください.