为什么CE了
查看原帖
为什么CE了
479246
封禁用户楼主2021/11/19 16:07

家人们,这里怎么错了,显示没有生成可执行文件,本地编译正确的

#include<stdio.h>
#include<string.h>
#define ll long long
#define N 1001
#define mod 998244353
int n,a,b,c,d;
int C[N][N],pre[N][N];
inline int read(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0' || ch>'9'){
		f=(ch=='-')?-1:1;
		ch=getchar();
	}
	while(ch>='0' && ch<='9'){
		x=(x<<3)+(x<<1)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
inline void dsadasdasd(void){
	for(int i=0;i<N;++i){
		C[i][0]=1;
		for(int j=1;j<=i;++j){
			C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
			if(C[i][j]>=mod) C[i][j]^=mod;
		}
	}
	for(int i=0;i<N;++i){
		pre[i][0]=1;
		for(int j=1;j<N;++j){
			pre[i][j]=(pre[i][j-1]+C[i][j])%mod;
			if(pre[i][j]>=mod) pre[i][j]^=mod;
		}
	}
	return;
}
inline ll sum(int x,int l,int r){
	if(l>r) return 0;
	if(l<=0) return pre[x][r];
	ll res=(pre[x][r]-pre[x][l-1])%mod;
	if(res<0) res+=mod;
	return res;
}
ll now,ans;
int main(){
	n=read(),a=read(),b=read(),c=read(),d=read();
	dsadasdasd();
	for(int i=0;i<=n && n-4*i>=0 && a-i>=0 && b-i>=0 && c-i>=0 && d-i>=0;++i){
		now=0;
		for(int j=0;j<=(n-4*i);++j){
			now=(now+1LL*C[(n-4*i)][j]*sum(j,j-(b-i),a-i)%mod*sum((n-4*i)-j,(n-4*i)-j-(c-i),(d-i))%mod)%mod;
		}
		now=(now*C[n-3*i][i])%mod;
		if(i&1) ans=(ans-now+mod)%mod;
		else ans=(ans+now)%mod;
	}
	printf("%lld\n",ans);
	return 0;
}
2021/11/19 16:07
加载中...