求调qwq
查看原帖
求调qwq
481851
Withers楼主2022/5/4 21:29

RT,第二个测试点WA了

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll jc[200010];
int jl[100010],a[100010];
ll ksm(ll a,ll b,ll mod){
    ll res=1;
    while(b){
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
ll c(ll a,ll b,ll mod){
    if(a<b) return 0;
    return jc[a]*ksm(jc[b],mod-2,mod)%mod*ksm(jc[a-b],mod-2,mod)%mod;
}
signed main()
{
	int n;
	jc[0]=1;
	int l,r;
	for(int i=1;i<=200000;i++) jc[i]=jc[i-1]*i%mod;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
		jl[a[i]]++;
		if(jl[a[i]]==2) 
		{
			r=i;
		}
	}
	for(int i=1;i<=n+1;i++)
	{
		if(a[i]==a[r])
		{
			l=i;
			break;
		}
	}
	for(int i=1;i<=n+1;i++)
	{
		cout<<((c(n+1,i,mod)-c(l+n-r,i-1,mod))%mod+mod)%mod<<endl;
	}
}
2022/5/4 21:29
加载中...