2018 Wannafly summer camp Day3--Travel
Travel
题目描述:
魔方国有n座城市,编号为1~n。城市之间通过n-1条无向道路连接,形成一个树形结构。
澜澜打算在魔方国进行mm次旅游,每次游览至少一座城市。为了方便,每次旅游游览的城市必须是连通的。此外,澜澜希望游览所有城市恰好一次。
澜澜想知道有多少种旅游方案满足条件,两个方案不同当且仅当存在某一次旅游游览了不同的城市。
澜澜不会数数,所以只好让你来帮他数方案。
输入:
第一行一个整数t表示数据组数 (1≤t≤100)。
每组数据第一行两个整数n,m(1≤m≤n≤105,Σn≤106),接下来n-1行每行两个整数ai,bi表示一条道路 (1≤ai,bi≤n)。
输出:
每组数据输出一行一个整数表示方案数对10^9+7取模的结果。
- 2
3 1
1 2
1 3
3 2
1 2
1 3
- 1
4
一开始看的时候,以为是图论,后面发现其实不是,这里的边其实并没有实际作用。因为题目只是要求在m次旅游中将n个城市都游历玩即可,所以用m-1条边将这个树划分为m个区域,这就代表了m次旅游,然后求其全排列就是答案
所以最终答案C(n-1,m-1)*m!
- #include<iostream>
- #include<algorithm>
- #include<cstdio>
- #include<cstdlib>
- using namespace std;
- typedef long long ll;
- const int maxn = << ;
- const int mod = ;
- int t, n, m, ta, tb;
- ll c[maxn];
- ll PowerMod(ll a, ll b, ll c) {
- ll ans = ;
- a = a % c;
- while (b>) {
- if (b % == )
- ans = (ans * a) % c;
- b = b / ;
- a = (a * a) % c;
- }
- return ans;
- }
- void init(){
- c[] = ;
- for (int i = ; i <= maxn; i++)
- {
- c[i] = c[i - ] * i%mod;
- }
- }
- ll C(ll n, ll m){return c[n] * PowerMod(c[m] * c[n - m] % mod, mod - , mod) % mod;}
- int main(void) {
- scanf("%d", &t);
- init();
- while (t-- > ) {
- scanf("%d%d", &n, &m);
- for (int i = ; i < n - ; i++)
- scanf("%d%d",&ta,&tb);
- if (m == ) {
- printf("1\n");
- continue;
- }
- ll ans = C(n - , m - );
- ans = (ans*c[m]) % mod;
- cout << ans << endl;
- }
- return ;
- }
2018 Wannafly summer camp Day3--Travel的更多相关文章
- 2018 Wannafly summer camp Day8--连通块计数
连通块计数 描述 题目描述: 小 A 有一棵长的很奇怪的树,他由 n 条链和 1 个点作为根构成,第 i条链有 ai 个点,每一条链的一端都与根结点相连. 现在小 A 想知道,这棵长得奇怪的树有多少 ...
- 2018 Wannafly summer camp Day2--Utawarerumono
Utawarerumono 描述 题目描述: 算术是为数不多的会让久远感到棘手的事情.通常她会找哈克帮忙,但是哈克已经被她派去买东西了.于是她向你寻求帮助. 给出一个关于变量x,y的不定方程ax+by ...
- 2018 Wannafly summer camp Day2--New Game!
New Game! 描述 题目描述: Eagle Jump公司正在开发一款新的游戏.泷本一二三作为其员工,获得了提前试玩的机会.现在她正在试图通过一个迷宫. 这个迷宫有一些特点.为了方便描述,我们对这 ...
- 2018 Wannafly summer camp Day8--区间权值
区间权值 小Bo有\(n\)个正整数\(a_1\)--\(a_n\),以及一个权值序列\(w_1\)--\(w_n\),现在她定义\(f(l,r)=(\sum_{i=l}^r a_i^2) *w_{r ...
- 2018 Wannafly summer camp Day3--Shopping
Shopping 描述 题目描述: 你要买n件物品,其中有一些是凳子. 商场正在举行促销活动,如果购物车中有至少一个凳子,那么你可以半价购买这个购物车中最贵的一个物品. 你有m辆购物车,请最小化你的花 ...
- 2018 Wannafly summer camp Day3--Knight
Knight 题目描述: 有一张无限大的棋盘,你要将马从\((0,0)\)移到\((n,m)\). 每一步中,如果马在\((x,y)(x,y)\),你可以将它移动到 \((x+1,y+2)(x+1,y ...
- 2019 wannafly winter camp
2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...
- 2019 wannafly winter camp day 3
2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...
- 2020 CCPC Wannafly Winter Camp Day1 C. 染色图
2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任 ...
随机推荐
- C# HashTable 使用用法详解
C#中如何操作HashTable类呢?本文将给你答案,哈希表(Hashtable)简述在.NET Framework中, 一,Hashtable是System.Collections命名空间提供的一个 ...
- js带文字的圆随机运动
首先是html代码(其实就只有一个画布,记得要把外部js引入写在body底部 <!doctype html> <html> <head> <meta http ...
- Stage2--Python的数据类型
说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...
- Elipse plugin or Bundle & OSGI
Develop and register service, lookup and use service! Android Design on service's publish-find-bind ...
- Spring应用开发常见规范
1.Spring应用开发常见包命名规范 controller:控制器 service:服务-接口 impl:服务-实现 integration sao:调用其他模块的,把feign的调用放到这个下面 ...
- windows RT开发笔记:WinRT DLL及其调用研究
一. 几个概念: WinRT : Windows Runtime, windows运行时.创建Windows运行时(WinRT)是为了在Windows上给用户提供一种流畅且安全的应用体验.WinRT会 ...
- QTablewidget 简单例子
[1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研 ...
- C/C++:函数的调用约定(Calling Convention)和名称修饰(Decorated Name)以及两者不匹配引起的问题
转自:http://blog.csdn.net/zskof/article/details/3475182 注:C++有着与C不同的名称修饰,主要是为了解决重载(overload):调用约定则影响函数 ...
- spring配置连接池和dao使用jdbcTemplate
1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 (1)把代码中的实现在配置文件中实现 2 dao使用jdbcTemplate (1) 创建ser ...
- MySQL中AddDate函数的疑惑
无论使用哪一种RDBMS,都需要使用到其中的一些日期转换函数,在使用MySQL的AddDate函数时,遇到了点小问题,稍作记录. root@localhost:mysql3376.sock [(non ...