zoukankan      html  css  js  c++  java
  • BZOJ 1488: [HNOI2009]图的同构 [Polya]

    完全图中选出不同构的简单图有多少个

    上题简化版,只有两种颜色....直接copy就行了

    太诡异了,刚才电脑上多了一个不动的鼠标指针,然后打开显卡管理界面就没了

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    const int N=65,P=997;
    typedef long long ll;
    inline int read(){
        char c=getchar();int x=0,f=1;
        while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}
        while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}
        return x*f;
    }
    int n,m=2;
    int inv[N],fac[N],facInv[N];
    void ini(){
        inv[1]=1;fac[0]=facInv[0]=1;
        for(int i=1;i<=n;i++){
            if(i!=1) inv[i]=-P/i*inv[P%i]%P;
            if(inv[i]<0) inv[i]+=P;
            fac[i]=fac[i-1]*i%P;
            facInv[i]=facInv[i-1]*inv[i]%P;
        }
    }
    int L[N],tot;
    int sum,ans;
    inline int gcd(int a,int b){return b==0 ? a : gcd(b,a%b);}
    inline int Pow(int a,int b){
        int re=1;
        for(;b;b>>=1,a=a*a%P)
            if(b&1) re=re*a%P;
        return re;
    }
    inline void mod(int &x){if(x>=P) x-=P;}
    void dfs(int d,int now){
        if(d==n){
            int lo=0;
            int cnt=fac[n],same=1;
            sort(L+1,L+1+tot);
            for(int i=1;i<=tot;i++){
                lo+=L[i]/2;
                for(int j=i+1;j<=tot;j++) lo+=gcd(L[i],L[j]);
    
                cnt=cnt*inv[L[i]]%P;
                if(i!=1&&L[i]==L[i-1]) same++;
                else if(same!=1) cnt=cnt*facInv[same]%P,same=1;
            }
            if(same!=1) cnt=cnt*facInv[same]%P;
            mod(sum+=cnt);
            mod(ans+=cnt%P*Pow(m,lo)%P);
        }else{
            for(int j=now;d+j<=n;j++){
                L[++tot]=j;
                dfs(d+j,j);
                tot--;
            }
        }
    }
    int main(){
        //freopen("in","r",stdin);
        n=read();
        ini();
        dfs(0,1);
        ans=ans*Pow(sum,P-2)%P;
        printf("%d",ans);
    }
  • 相关阅读:
    BPC (9) SAP BI & BPC 安装 : 一个外行眼里的千奇百怪 (1)
    ESB (2) POCSofewareAG
    BPC (7) BPC Netweaver 7 和 microsoft 7 版本的差异
    ESB (3) POCOralce ESB
    厘清了xorg里的一些概念
    Top命令和Kill命令
    ubuntu中文英文环境切换
    /etc/passwd 文件内容详细解释
    [分享] Linux下用Anjuta写个Hello World 的C++程序竟如此简单!
    /proc目录
  • 原文地址:https://www.cnblogs.com/candy99/p/6484522.html
Copyright © 2011-2022 走看看