教科书般的亵渎

Posted acm1ruoji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教科书般的亵渎相关的知识,希望对你有一定的参考价值。

传送门:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
#define re register
const int mod=1e9+7;
inline void read(ll &a)
{
    a=0;
    int d=1;
    char ch;
    while(ch=getchar(),ch>9||ch<0)
        if(ch==-)
            d=-1;
    a=ch^48;
    while(ch=getchar(),ch>=0&&ch<=9)
        a=(a<<3)+(a<<1)+(ch^48);
    a*=d;
}
ll f[55],a[55];
inline void init()
{
    f[0]=1;
    for(re int i=1;i<=54;i++)
        f[i]=1ll*f[i-1]*i%mod;
}
inline ll quickmod(ll x,int y)
{
    ll res=1;
    ll base=x%mod;
    while(y)
    {
        if(y&1)
            res=res*base%mod;
        base=base*base%mod;
        y>>=1;
    }
    return res;
}
inline ll solve(ll n,int m)
{
    ll ans=0;
    if(n<=m+2)
    {
        for(re int i=1;i<=n;i++)
            (ans+=quickmod(i,m))%=mod;
        return ans;
    }
    ll pos=1,base=0,t;
    for(re int i=1;i<=m+2;i++)
        (pos*=(n-i))%=mod;
    for(re int i=1;i<=m+2;i++)
    {
        (base+=quickmod(i,m))%=mod;
        t=pos*quickmod(n-i,mod-2)%mod;
        t=t*quickmod(f[m+2-i]*f[i-1],mod-2)%mod;
        if((m+2-i)&1)
            ans=((ans-base*t%mod)%mod+mod)%mod;
        else
            ans=(ans+base*t%mod)%mod;
    }
    return ans;
}
int main()
{
    init();
    int T;
    scanf("%d",&T);
    while(T--)
    {
        ll n;
        int m;
        read(n);
        scanf("%d",&m);
        for(re int i=1;i<=m;i++)
            read(a[i]);
        sort(a+1,a+1+m);
        ll ans=0;
        for(re int i=0;i<=m;i++)
        {
            (ans+=solve(n-a[i],m+1))%=mod;
            for(re int j=i+1;j<=m;j++)
                ans=((ans-quickmod(a[j]-a[i],m+1))%mod+mod)%mod;
        }
        printf("%lld\n",ans);
    }
    return 0;
}

 

以上是关于教科书般的亵渎的主要内容,如果未能解决你的问题,请参考以下文章

P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)

计蒜客 教科书般的亵渎

luogu P4593 [TJOI2018]教科书般的亵渎

BZOJ5339:[TJOI2018]教科书般的亵渎——题解

题解Code+7 教科书般的亵渎

P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)