省略
省略
C++に変換後のコードはこちら
int M, A[1000];
int fs, f[20000], fn[20000];
mint dp[20000];
{
int i, j;
int upmd = MD - 1;
ll cnt;
mint res, tmp;
rd(M,A(M));
rep(i,M) fs += Factor(A[i], f+fs, fn+fs);
sortA(fs, f, fn);
Unique(fs, f, fn);
cnt = 1;
rep(i,fs) cnt = (cnt * (fn[i]+1)) % upmd;
res = mint(2) ** cnt;
dp[0] = 2;
rep(i,fs){
for(j=i+1;j>=0;j--){
dp[j] = dp[j] + (dp[j] * j + dp[j-1]) * fn[i];
}
}
rep(i,fs+1) res -= dp[i];
wt(res);
}
Current time: 2024年03月29日14時35分55秒
Last modified: 2019年09月04日00時12分51秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)