码迷,mamicode.com
首页 > 其他好文 > 详细

【BubbleCup X】E:Casinos and travel

时间:2017-09-04 19:47:33      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:lin   type   code   har   bubble   nbsp   getchar   ace   size   

懒得一起写blog了,反正没人看,分着写。

这个题看上去像个dp计数,其实这么想,题意就是根到叶子的xor和=0

分治节点可以随意调整,只有叶子节点的取值会对答案造成影响。

也就是每个点做根时,分支节点产生的方案贡献是2cnt,此处cnt是分支节点个数。

如果是叶子做根额外多一次幂,因为这个叶子节点被固定了。

#include<bits/stdc++.h>
const int N=1000005;
const int yql=1e9+7;
typedef long long ll;
using namespace std;
int ind[N],n,m,cnt=0;ll ans=0,bin[N];
inline int read(){
    int f=1,x=0;char ch;
    do{ch=getchar();if(ch==-)f=-1;}while(ch<0||ch>9);
    do{x=x*10+ch-0;ch=getchar();}while(ch>=0&&ch<=9);
    return f*x;
}
int main(){
    n=read();
    for(int i=1;i<n;i++){
        int u=read(),v=read();
        ind[u]++;ind[v]++;
    }
    bin[0]=1;cnt=0;
    for(int i=1;i<=n*10;i++)bin[i]=(bin[i-1]<<1)%yql;
    for(int i=1;i<=n;i++)if(ind[i]!=1)cnt++;
    for(int i=1;i<=n;i++)ans=(ans+bin[cnt+(ind[i]==1)])%yql;
    ans=(ans+yql)%yql;
    printf("%lld\n",ans);
}

 

【BubbleCup X】E:Casinos and travel

标签:lin   type   code   har   bubble   nbsp   getchar   ace   size   

原文地址:http://www.cnblogs.com/zcysky/p/7475023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!