BZOJ 2467 生成树

Posted on 2016-12-19 16:18  ziliuziliu  阅读(122)  评论(0编辑  收藏  举报

当(n-1)条中间的边:4^(n-1)*4*C(n-1,n)。

。。。。。。以此类推Σ。

f[n]=Σ(i=0..n-1)4^(i+1)*(n-i)*C(n,i)

     =Σ(i=0..n-1)4^(i+1)*n*C(n-1,i)

     =4n*Σ(i=0..n-1)4^i*C(n-1,i)

然后发现后面那坨就是(4+1)^(n-1)展开了一下啊魂淡。

答案4n*5^(n-1)。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define mod 2007
#define maxn 105
using namespace std;
int t,x,f[maxn];
int main()
{
    scanf("%d",&t);
    f[1]=1;for (int i=2;i<=100;i++) f[i]=f[i-1]*5%mod;
    for (int i=1;i<=t;i++)
    {
        scanf("%d",&x);
        printf("%d\n",f[x]*x*4%mod);    
    }    
    return 0;
}