95分WA#16求助
查看原帖
95分WA#16求助
357392
Ink_Sakuya楼主2021/7/22 07:59

qwq

qwq

qwq

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define mian main
using namespace std;
const ll mod=1000000007;
ll f[1000010],cf[1000010],zs[1000010];
ll n,m,t;
ll power(ll a,ll b)
{
    ll ans=1;
    while(b)
    {
        if(b&1) ans=ans*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return ans;
}
void azaz()
{
    f[0]=1;
    for(ll i=1;i<1000000;i++)
	{
        f[i]=f[i-1]*i%mod;
        cf[i]=power(f[i],mod-2);
    }
    zs[1]=0;
	zs[2]=1;
	zs[3]=2;
    for(ll i=4;i<1000010;i++) zs[i]=(i-1)*(zs[i-1]+zs[i-2])%mod;
}
int mian()
{
    cin>>t;
    azaz();
    for(ll i=1;i<=t;i++)
	{
        ll n,m;
        scanf("%lld%lld",&n,&m);
        if(n-m==1) printf("0\n");
        else if(m==n) printf("1\n");
        else if(m==0) printf("%lld\n",zs[n]);
        else printf("%lld\n",f[n]*cf[m]%mod*cf[n-m]%mod*zs[n-m]%mod);
    }
    return 0;
}
2021/7/22 07:59
加载中...