トピックポータル(内部タイトル39)
入力形式
最初のライン:4の正の整数$ N $、$ M $、 $ A $、$ Bの$。
第二行:$ N $正の整数で、$ Iの$する$ F(I、0)$のいずれかを表します 。
第三行:$ Mは$正の整数で、$(I、0)$ I $ $ Fの1つを表します 。
出力フォーマット
最初のライン:MOD 998244353の$ \の$ F(N、M)を表す整数。
サンプル
サンプル入力:
4 4 3 2
1 3 5 7
2 4 6 8
出力例:
50807
データ範囲とヒント
$ 20 \%の$データ:$ nは、m個の\ leqslant 10 、B用の\ leqslant 3、F(I 0)、F(0、I)\ leqslant 10 $。
$ 50 \%の$データ:$ nは、m個の\ leqslant { 10} ^ 3 $。
さらに$ 10 \%の$データ:$ N = 1 $。
さらに$ 10 \%の$データ:$のA = B = 1 $ 。
さらに$ 10 \%の$データ:$のF(I、0) = F(0、I)= 1 $。
$ \ 100%の$データ:$ nは、m個の\ leqslant 3 \回{10} ^ 5 $、 他の全ての入力が$長い\長い$の範囲内のデータです。
問題の解決策
各方向への各点$(i、j)は$、点$(N、M)のために$を移動するために必要なステップの数が決定移動は組み合わせの数によって計算することができるされています。
だから、答えにポイント$(i、j)は$寄与は、\ $は、いくつかの法の$ \回数^ {MI} \回をb ^ {NI} $歩い倍の$ F(i、j)があります。
急速な統計的検出力との組み合わせの前処理数は、お答えします。
時間の複雑さ:$ \シータ$(N N + m個の\ログメートルを記録\)。
期待はスコア:$ $ 100ポイントを。
実際のスコア:$ $ 100ポイント。
コードの時間
#include <ビット/ STDC ++ H>
名前空間STDを使用して、
constの長い長いMOD = 998244353;
長い長N、M。
長い長い、B;
長い長いP [300010]、Q [300010]。
長い長いFAC [600010]、INV [600010]。
長い長いANS;
長い長いqpow(長い長いX、長い長いY)
{
長い長のRES = 1。
一方、(Y)
{
IF(Y&1)RES =の解像度* X%MOD。
X = X * X%MOD。
Y >> = 1。
}
RESを返します。
}
長い長いC(長い長いX、長い長いY){戻り1LLの*のFAC [X] * INV [XY]%MOD * INV [Y]%のMOD;}
int型のmain()
{
scanf関数( "%LLD%LLD% LLDの%のLLD」、&N、&M、&、&B)。
=(A + MOD)%MOD。
B =(B + MOD)%のMOD。
以下のための(長い長i = 1; iが<= N; iが++){scanf関数( "%のLLD"、&P [i])と、P [I] =(P [I] + MOD)%のMOD;}
(長い長いためI = 1; I <= M; iは++){scanf関数( "%のLLD"、&Q [i])と; Q [I] =(Q [i]が+ MOD)%のMOD;}
FAC [0] = INVを[0 ] = 1。
以下のための(長い長i = 1; iがM <= N +; I ++)は
FAC [i]は= 1LL * FAC [I-1] * I%MOD。
INV [N + M] = qpow(FAC [N + M]、MOD-2)。
以下のための(長い長いI = N + M; I; i--)
INV [I-1] = 1LL * INV [I] * I%MOD。
以下のために(長い長i = 1; iが<= N; iは++)
ANS =(ANS + C(N + M-1-I、M-1)* qpow(M)%のMOD * qpow(B、NI) %のMODの* P [I]%のMOD)%MOD。
以下のための(長い長いI = 1; I <= M; iは++)
ANS =(ANS + C(N + M-1-I、N-1)* qpow(B、N)%のMOD * qpow(MI) %MOD * Q [I]%のMOD)%MOD。
printf( "%のLLD"、ANS)。
0を返します。
}
RP ++