zoukankan      html  css  js  c++  java
  • 模拟3题解 T3建造游乐园

    T3建造游乐园

    这题的关键是推式子

    i个点中,有g[i]个方案是度为偶数
    但不一定连通
    那么就要减去不合法的
    设已有j个合法,其个数为f[j],剩下i-j个的方案数是g[i-j]
    选出来一个固定的点在合法的j个之中
    对于 与这个点连接的j-1的点的选择方案数为C(i-1,j-1)

     1 #include<iostream>
     2 #include<cmath>
     3 #include<cstdio>
     4 #define ll long long
     5 using namespace std;
     6 const int mod=1000000007;
     7 
     8 ll g[2005],f[2005];
     9 ll c[2005][2005],poww[2000000];
    10 
    11 int main()
    12 {
    13     //freopen("data","r",stdin);
    14     int n;
    15     scanf("%d",&n);
    16     for(int i=0;i<=n;i++)
    17     {
    18         c[i][0]=1;
    19         for(int j=1;j<=i;j++)
    20             c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
    21     }
    22     poww[0]=1;
    23     for(int i=1;i<=c[n-1][2];i++)
    24         poww[i]=poww[i-1]*2%mod;
    25     for(int i=1;i<=n;i++)
    26         g[i]=poww[c[i-1][2]];
    27     for(int i=1;i<=n;i++)
    28     {
    29         ll jl=0;
    30         for(int j=1;j<i;j++)
    31             jl=(jl+f[j]*g[i-j]%mod*c[i-1][j-1]%mod)%mod;
    32         f[i]=(g[i]-jl+mod)%mod;
    33     }
    34     ll ans=f[n]%mod*c[n][2]%mod;
    35     printf("%lld",ans);
    36 }
    View Code

     (填个坑)

    愿你在迷茫时,记起自己的珍贵。
  • 相关阅读:
    Java 正则表达式
    【 D3.js 进阶系列 — 4.0 】 绘制箭头
    d3.js path路径
    java equals 与 hashCode
    ubuntu14 简单安装ffmpeg
    mysql 导入
    Session的生命周期
    Mysql 乱码配置
    51nod1416(dfs)
    51nod1402(贪心)
  • 原文地址:https://www.cnblogs.com/casun547/p/11190722.html
Copyright © 2011-2022 走看看