比赛 2025.1.18 评测结果 AAAAAAAAAA
题目名称 建设城市(民间数据) 最终得分 100
用户昵称 李奇文 运行时间 0.060 s
代码语言 C++ 内存使用 4.24 MiB
提交时间 2025-01-18 11:13:33
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5,p=998244353;
ll m,n,x,y,ans,fc[N],ifc[N];
ll ksm(ll a,ll b){
	ll s=1,m=a; 
	while(b){
		if(b&1)s=s*m%p; 
		m=m*m%p;
		b>>=1;
	} 
	return s;
}
ll c(ll m,ll n){
	return fc[n+m-1]*ifc[n]%p*ifc[m-1]%p;
}
int main(){
	freopen("noi_online2020_city.in","r",stdin);
	freopen("noi_online2020_city.out","w",stdout);
	cin>>m>>n>>x>>y;
	fc[0]=1; 
	for(int i=1;i<=m+n;i++) fc[i]=fc[i-1]*i%p;
	ifc[m+n]=ksm(fc[m+n],p-2);
	for(int i=m+n-1;~i;i--) ifc[i]=ifc[i+1]*(i+1)%p;
	if(x<=n&&y>n){
		for(int i=1;i<=m;i++) ans=(ans+c(i,x-1)*c(m-i+1,n-x)%p*c(m-i+1,y-n-1)%p*c(i,2*n-y))%p;
	}
	else{
		ans=c(m,n)*c(m,n+x-y)%p;
	}
	cout<<ans<<endl;
	return 0;
}