请问为什么同样的代码用GCC会RE,用Clang就能AC?
  • 板块学术版
  • 楼主zztqwq
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/4/2 22:55
  • 上次更新2023/11/5 01:08:37
查看原帖
请问为什么同样的代码用GCC会RE,用Clang就能AC?
125913
zztqwq楼主2021/4/2 22:55

RT,代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=5010;
int qpow(int a,int n)
{
	int ans=1;
	while(n)
	{
		if(n&1) ans=(long long)ans*a%998244353;
		a=(long long)a*a%998244353;
		n>>=1;
	}
	return ans;
}
int f[N],p[N],inv[N];
int C(int n,int m) {return (long long)p[n]*inv[m]%998244353*inv[n-m]%998244353;}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	p[0]=inv[0]=1;
	for(int i=1;i<=n;i++)
	{
		p[i]=(long long)p[i-1]*i%998244353;
		inv[i]=qpow(p[i],998244351);
	}
	f[0]=1;
	for(int i=0;(1<<i)<=m;i++)
		for(int j=m;j>=0;j--)
			for(int k=1;2*k*(1<<i)<=j;k++)
				if(j-2*k*(1<<i)>=0)
				{ 
					f[j]+=(long long)f[j-2*k*(1<<i)]*C(n,2*k)%998244353;
					f[j]%=998244353;
				}
	printf("%d",f[m]);
	return 0;
}

AC记录

RE记录

2021/4/2 22:55
加载中...