正题

题目链接:https://ac.nowcoder.com/acm/contest/11161/C


题目大意

nnn个点加mmm条边使得不存在环,每种方案的权值是所有联通块的大小乘积。

求所有方案的权值和。

1≤n≤109,1≤m≤1071\leq n\leq 10^9,1\leq m\leq 10^71≤n≤109,1≤m≤107


解题思路

就是分成n−mn-mn−m个树,然后权值比较麻烦。

但是发现权值是大小,所以可以理解为有根树,这样就是纯粹的求方案数了。

然后我们还可以优化,设虚根000,我们限制其度数为n−mn-mn−m就可以分为n−mn-mn−m个有根树了。

所以用PruferPruferPrufer序列统计的话方案数就是
(n−1m)×nm\binom{n-1}{m}\times n^m(mn−1​)×nm

时间复杂度O(n)O(n)O(n)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll P=1e9+7;
ll n,m,C,inv[11000000];
ll power(ll x,ll b){ll ans=1;while(b){if(b&1)ans=ans*x%P;x=x*x%P;b>>=1;}return ans;
}
signed main()
{scanf("%lld%lld",&n,&m);ll C=1;for(ll i=1;i<=m;i++)C=C*(n-i)%P;inv[1]=1;for(ll i=2;i<=m;i++)inv[i]=P-inv[P%i]*(P/i)%P,C=C*inv[i]%P;printf("%lld\n",C*power(n,m)%P);
}

牛客挑战赛48C-铬合金之声【Prufer序列】相关推荐

  1. 牛客挑战赛47 C 条件(Floyd bitset优化)

    牛客挑战赛47 C 条件 思路:首先我们要两个图,一个是一定能到达的,一个是可能到达的,如果我们使用floyd (n^3)就有可能会超时,因为只要求询问能否到达,所以权值只有0和1,那我们可以使用bi ...

  2. 牛客挑战赛47 A 一道GCD问题

    牛客挑战赛47 A 一道GCD问题 思路参考牛客上的题解: 根据多维的更相减损术得gcd(x,y,z)=gcd(x,y−x,z−y)得 gcd(a1+k,a2+k,a3+k-,an+k)=gcd(a1 ...

  3. 牛客挑战赛47 D Lots of Edges(最短路+递归枚举子集)

    牛客挑战赛47 D Lots of Edges 思路:点的权值最多只有(1<<17)-1(131071) ,那我们可以枚举终点的值来算最短路,每个点能连边的值都是固定的,可以通过递归枚举子 ...

  4. 牛客挑战赛42 A.小睿睿的数列

    牛客挑战赛42 A.小睿睿的数列 题目链接 题目描述 小睿睿给了你一个长度为n的数列,他想问你该数列中满足条件(区间内存在某个数是区间内所有数的公因数)的最长区间有多少个 输入描述: 第一行 111 ...

  5. 牛客挑战赛36 - 纸飞机

    题目链接:牛客挑战赛36 - 纸飞机 题目描述 直线上有n座山峰,第i座的高度为hi.从某座山峰上放飞一架纸飞机,它可以从左往右依次经过一系列高度严格递减的山头. 假设五座山峰的高度依次是3,4,3, ...

  6. 牛客挑战赛34 A 能天使的愿望 (dp 分组背包)

    链接:https://ac.nowcoder.com/acm/contest/2271/A 来源:牛客网 题目描述 出题人寄给大家的一些闲话:参加了CSP-J/S 2019 的同学,考的都怎么样啊?不 ...

  7. 牛客挑战赛34 A.能天使的愿望(分组背包)

    链接:https://ac.nowcoder.com/acm/contest/2271/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 65536K,其他语言1310 ...

  8. 牛客挑战赛48--A and B

    A-天使果冻 链接:https://ac.nowcoder.com/acm/contest/11161/A 来源:牛客网 题意:一个数组包含n个数,求前i个数的次大值是多少(倘若最大值有两个,则次大值 ...

  9. 【牛客挑战赛46】F.柠檬树

    Description 这是一棵有 n 个柠檬的柠檬树,由 n-1 条枝条连接而成. 秋天了,柠檬都成熟了, 牛牛和牛妹准备选一些柠檬送给他们的朋友们. 对于每一个朋友,牛妹会选择第 l-r 个柠檬送 ...

最新文章

  1. c语言三目运算程序,有C语言中三目运算符 联系到的 程序打trace
  2. 01-----JavaScript简介
  3. STM32固件库文件树及构成详解
  4. Django框架详细介绍---cookie、session、自定义分页
  5. 使用adb install 时 提示error: more than one device and emulator
  6. C语言指令启动mcs51计时器是,嵌入式C语言程序设计:使用MCS-51
  7. JAVA复习( StringBuffer 和 StringBuilder)
  8. java 取随机正整数_Java获取随机数
  9. Ubuntu安装包时报错 E:Unable to locate package xxx(如:python3-pip)
  10. ‘MIX_INIT_MP3’ was not declared in this scope,这是什么情况?
  11. 鸿蒙操作系统用的微内核到底是什么?
  12. 嵩天python123测试3_嵩天老师python123测验3: 基本数据类型 (第3周)
  13. 深度学习:自然语言生成-集束/柱搜索beam search和随机搜索random search
  14. 【训练计划】--2019-04
  15. 如何画出一张优秀的架构图(老鸟必备)
  16. 免费版xshell下载地址
  17. 使用开源人脸特征提取器进行脸部颜值评分
  18. 【U8】固定资产模块卡片管理栏目设置中没有“凭证号”栏目
  19. cala开发编程入门Hello World示例
  20. 仿百度html页面,HTML实战篇:html仿百度首页

热门文章

  1. 电脑home键在哪_如何灵活使用电脑键盘上的各个键
  2. php上传文件程序,php 文件上传程序(二款简单文件上传程序)_PHP教程
  3. 大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
  4. jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞
  5. 钣金缺口lisp_UG用钣金模块的放样创建天圆地方,还能学钣金展开,必看
  6. 计算机语言学考研科目,语言学考研笔记整理(共16页)
  7. python字符串的表示_Python字符串方法总结
  8. java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用
  9. c语言glut打正方形,OpenGL绘制正方形并用键盘移动
  10. C++ 基类,子对象,派生类构造函数调用顺序