51NOD - 1677treecnt
题目链接:51NOD - 1677treecnt
假设这条边左边s个点,右边n-s个点。只有左右都有点,那么这条边就会贡献答案。然后容斥计算就是总方案减去全在左边或者全在右边。
#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相关推荐
- 51nod 1617 奇偶数组
传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...
- 51NOD 1773:A国的贸易——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...
- 51nod 1040:最大公约数之和(数论)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...
- (DP)51NOD 1183 编辑距离
编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...
- 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)
二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...
- 51Nod 1003 阶乘后面0的数量(数学,思维题)
1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...
- 51nod 1270 数组的最大代价
1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...
- 51nod 算法马拉松18 B 非010串 矩阵快速幂
51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...
- [51nod]1284 2 3 5 7的倍数(容斥原理)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284 1 #include <iostream> ...
最新文章
- java log4j mysql_java – log4j:MySQL的JDBCAppender错误
- ​谷歌大神Jeff Dean领衔,万字展望5大AI趋势
- AngularJS 1.x 国际化——Angular-translate例子
- 【视频编解码的新挑战与新机会】
- 构造函数为什么不能是虚函数
- 【DS18B20】与之相连的引脚正确配置
- docker+fastfds搭建文件服务器
- 特殊IP地址分类:私有地址、保留地址
- Flask全套知识点从入门到精通,学完可直接做项目
- 黑盒测试技术之等价类划分法
- Python——列表和元组
- 禀赋效应还是锚定效应
- java unicode gbk_java unicode转GBK
- 解决执行力问题的思路
- 彻底解剖人民币升值问题 文/岑科
- 为什么说CRM对B2B企业很重要?
- 华为一、二、三面面经
- 面向对象有限元框架设计(OOFEM)
- MAC版本Mysql数据库忘记密码解决教程
- 为电子书迷测评几款epub阅读器