Codeforces Round #581 DIV2 E問題 (2500pt)
Problem description
省略
省略
C++に変換後のコードはこちら
//no-unlocked
#define MD 998244853
int N, M;
modint C[4001][2001];
inline modint f(int a, int b){
if(a < b) return 0;
return (a-b+1) * C[a+b][b] / (a+1);
}
{
int i, j;
int x1, y1, x2, y2;
modint res;
rd(N,M);
rep(i,4001) C[i][0] = 1;
rep(i,1,4001) rep(j,1,2001) C[i][j] = C[i-1][j-1] + C[i-1][j];
res = 0;
rep(i,N+M+1) for(j=i%2;j<=min(N,i);j+=2){
x1 = j + (i-j) / 2;
y1 = (i-j) / 2;
if(x1 < 0 || y1 < 0 || x1 > N || y1 > M) continue;
x2 = y2 = 0;
if(i < N+M){
x2 = N - x1;
y2 = M - y1 - 1;
if(y2 < 0) continue;
}
res += j * f(x1, y1) * f(y2, x2);
}
wt(res);
}
Current time: 2024年04月26日16時38分56秒
Last modified: 2019年08月21日05時02分58秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF581 CF_Div2_E
トップページに戻る
Logged in as: unknown user (not login)