我遇到了神仙玄学无语问题
查看原帖
我遇到了神仙玄学无语问题
1013881
do_it_tomorrow楼主2024/5/30 14:52

这个是 TJ 代码,可以 AC。

#include<iostream>
#define int __int128
using namespace std;
const int N=205,mod=100000000000000003ll;
int ksm(int x,int y)
{
    int lcq=1,pw=x%mod;
    for(int i=0;i<=62;i++,pw=pw*pw%mod)
        if(y>>i&1)
            lcq=lcq*pw%mod;
    return lcq;
}
int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
void print(int x)
{
    if(x<=9)
        cout<<(signed)(x);
    else
    {
        print(x/10);
        cout<<(signed)(x%10);
    }
}
int jc[N],n,d[N],sum;
signed main(){
	n=read();
    if(n==0)
        cout<<1,exit(0);
    jc[0]=1;
    for(int i=1;i<=n;i++)
    {
        jc[i]=jc[i-1]*i%mod;
        d[i]=read();
        sum+=d[i];
        if((d[i]<1&&n!=1)||d[i]>=n)
            cout<<0,exit(0);
    }
    if(sum!=n*2-2)
        cout<<0,exit(0);
    int ans=jc[n-2];
    for(int i=1;i<=n;i++)
        ans=ans*ksm(jc[d[i]-1],mod-2)%mod;
    print(ans);
    return 0;
}

但是把数组的定义位置给一下就 WA 了。

#include<iostream>
#define int __int128
using namespace std;
const int N=205,mod=100000000000000003ll;
int ksm(int x,int y)
{
    int lcq=1,pw=x%mod;
    for(int i=0;i<=62;i++,pw=pw*pw%mod)
        if(y>>i&1)
            lcq=lcq*pw%mod;
    return lcq;
}
int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
void print(int x)
{
    if(x<=9)
        cout<<(signed)(x);
    else
    {
        print(x/10);
        cout<<(signed)(x%10);
    }
}
int n,d[N],jc[N],sum;
signed main(){
	n=read();
    if(n==0)
        cout<<1,exit(0);
    jc[0]=1;
	 for(int i=1;i<=n;i++)
    {
        jc[i]=jc[i-1]*i%mod;
        d[i]=read();
        sum+=d[i];
        if((d[i]<1&&n!=1)||d[i]>=n)
            cout<<0,exit(0);
    }
	if(sum!=n*2-2)
        cout<<0,exit(0);
    int ans=jc[n-2];
    for(int i=1;i<=n;i++)
        ans=ans*ksm(jc[d[i]-1],mod-2)%mod;
	print(ans);
	return 0;
}

难道全局数组的定义还有什么讲究不成?

2024/5/30 14:52
加载中...