题目链接:51NOD - 1677treecnt


显然可以考虑每条边的贡献。

假设这条边左边s个点,右边n-s个点。只有左右都有点,那么这条边就会贡献答案。然后容斥计算就是总方案减去全在左边或者全在右边。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10,mod=1e9+7;
int n,k,sz[N],fac[N]={1},res;
vector<int> g[N];
inline void add(int a,int b){g[a].push_back(b),g[b].push_back(a);}
inline int qmi(int a,int b=mod-2){int res=1;while(b){if(b&1LL) res=res*a%mod; a=a*a%mod; b>>=1LL;}return res;
}
inline int C(int n,int m){if(m>n)    return 0;return fac[n]*qmi(fac[m])%mod*qmi(fac[n-m])%mod;
}
void dfs(int x,int fa){sz[x]=1;for(auto to:g[x])   if(to!=fa){dfs(to,x);  int s=sz[to];res=(res+(C(n,k)-C(n-s,k)-C(s,k))%mod+mod)%mod;sz[x]+=sz[to];}
}
signed main(){cin>>n>>k;for(int i=1;i<=n;i++)    fac[i]=fac[i-1]*i%mod;for(int i=1,a,b;i<n;i++)   scanf("%lld %lld",&a,&b),add(a,b);dfs(1,1);   cout<<res;return 0;
}

51NOD - 1677treecnt相关推荐

  1. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  2. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  3. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  4. (DP)51NOD 1183 编辑距离

    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...

  5. 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

  6. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  7. 51nod 1270 数组的最大代价

    1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...

  8. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

  9. [51nod]1284 2 3 5 7的倍数(容斥原理)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284 1 #include <iostream> ...

最新文章

  1. java log4j mysql_java – log4j:MySQL的JDBCAppender错误
  2. ​谷歌大神Jeff Dean领衔,万字展望5大AI趋势
  3. AngularJS 1.x 国际化——Angular-translate例子
  4. 【视频编解码的新挑战与新机会】
  5. 构造函数为什么不能是虚函数
  6. 【DS18B20】与之相连的引脚正确配置
  7. docker+fastfds搭建文件服务器
  8. 特殊IP地址分类:私有地址、保留地址
  9. Flask全套知识点从入门到精通,学完可直接做项目
  10. 黑盒测试技术之等价类划分法
  11. Python——列表和元组
  12. 禀赋效应还是锚定效应
  13. java unicode gbk_java unicode转GBK
  14. 解决执行力问题的思路
  15. 彻底解剖人民币升值问题 文/岑科
  16. 为什么说CRM对B2B企业很重要?
  17. 华为一、二、三面面经
  18. 面向对象有限元框架设计(OOFEM)
  19. MAC版本Mysql数据库忘记密码解决教程
  20. 为电子书迷测评几款epub阅读器

热门文章

  1. 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15] .
  2. SRS部署集群服务 Edge 模式[SRS V4.0]
  3. 这世上,真有人会陪你手握屠龙刀,杀得生活措手不及!
  4. 女子花2万元雇友人杀逝世女街坊
  5. vs2015安装使用体验
  6. (解决)PHP GD 插入PNG图片后透明背景变灰色
  7. 第37天学习——CSS
  8. 设定软件使用期限,根据网络时间保护试用软件产品的方法
  9. 你好,女神节有个给你的惊喜请查收
  10. 名帖77 刘弘珪 楷书《金刚般若波罗蜜经》