1.6

今晚ABC,切了 4 道简单题,不想写了,来写个闲话。

看洛天依推式子好厉害啊所以也想写几道数论题来推式子,结果开了几道发现全是容斥原理的题,可是我不会推容斥的式子啊???


最近在写集合计数

式子

\[\sum\limits_{i=0}^n (-1)^i \dbinom{n}{i}\times (2^{2^{n-i}}-1) \]

代码写了!根据式子写即可

Code
#include"bits/stdc++.h"
using namespace std;
#define int long long
const int N=3*1e6;
int n,k;
const int P=1e9+7;
int js[N],inv[N];
inline int qpow(int a,int b,int c)
{
    int ans=1;
    while(b)
    {
        if(b&1) ans=(ans*a)%c;
        a=(a*a)%c;
        b>>=1;
    }
    return ans;
}
inline int C(int n,int m)
{
   return js[n]*inv[m]%P*inv[n-m]%P;
}
inline int ask(int m)
{
    int ans=0;
    for(int i=0,u=1;i<=m;++i,u=-u)
    ans=(ans+u*C(m,i)*(qpow(2,qpow(2,m-i,P-1),P)-1)%P)%P;
    return ans;
}
signed main()
{
    cin>>n>>k;
    js[0]=1;
    for(int i=1;i<=n;++i)
        js[i]=js[i-1]*i%P;
    inv[n]=qpow(js[n],P-2,P);
    for(int i=n-1;i>=0;--i)
        inv[i]=inv[i+1]*(i+1)%P;
    cout<<(ask(n-k)*C(n,k)%P+P)%P;
}


虽然我不是东方厨但还是放了张恋恋校徽

image

水印不会去,恋恋可爱捏。


没啥抽象事了

posted @ 2024-01-06 21:37  HS_xh  阅读(56)  评论(5)    收藏  举报
init();