首页 > 其他分享 >计树 Normal --

计树 Normal --

时间:2024-06-11 21:33:26浏览次数:20  
标签:连边 Normal -- inv namespace 计树 int include

无聊的水题。

无聊的水题 I

DLS 喜欢上树。
但是他并不想把一道数据结构题出到树上,他喜欢计 Tree。

这一天,他想自己造一棵树,他手头有 \(N\) 个树的节点,标号为 \(1 \sim N\),他会在它们之间连边,我们定义两颗树不同,当且仅当一对节点在一棵树中有连边,另一棵树中没有连边。
但他不喜欢一棵太多分叉的树,于是他想让这棵树的节点中最大的度数为 \(M\)。

DLS 由于不太擅长理科,所以希望你帮他计算有多少棵这样的树。
答案对 \(998244353\) 取模。

题如其名。

差分一下,最大恰好转换为每个数不超过。

Prufer 序列,每一个点的出现次数都小于 \(M\) 的方案数。

\(n - 2\) 个点,每个点的出现次数都小于 \(m\)。

统计 \(cnt\) 数组。

\[(n - 2)! [n - 2] \left( \sum_{i = 0} ^m \frac {x^i}{i!} \right) ^ n \]

是不是做完了。

#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#define int long long
using namespace std;
namespace azus{
	using namespace Poly;
	int n;
	int jc[2000005], inv[2000005];
	int calc(int m){
		poly a;
		for(int i = 0; i <= m; i ++)
			a.push_back(inv[i]);
		a.resize(n);
//		polyOutput(a);
		a = polyPow(a, n);
//		polyOutput(a);
		return jc[n - 2] * a[n - 2] % P;
	}
	int main(){
		jc[0] = inv[0] = 1;
		for(int i = 1; i <= 2000000; i ++)
			jc[i] = jc[i - 1] * i % P;
		inv[2000000] = Ksm(jc[2000000], P - 2);
		for(int i = 1999999; i >= 1; i --)
			inv[i] = inv[i + 1] * (i + 1) % P;
		int m;
		cin >> n >> m;
		cout << (P + calc(m - 1) - calc(m - 2)) % P;
		return 0;
	}
}
signed main(){
//	ios::sync_with_stdio(0);
//	cin.tie(0), cout.tie(0);
	int T = 1;
	while(T --) azus::main();
	return 0;
}

标签:连边,Normal,--,inv,namespace,计树,int,include
From: https://www.cnblogs.com/AzusidNya/p/18242761

相关文章

  • Adobe Acrobat Pro DC2023软件安装教程、安装包下载
    软件简介AcrobatDC是一个功能强大的PDF编辑软件,它可以将任何纸质文件转换为可编辑的电子文件,用于传输、签署和分享,并且提供了一系列强大的功能来编辑PDF文档。软件下载复制链接在浏览器打开即可下载https://www.qqres.com/2248.html安装步骤1.打开解压后的文件夹,鼠......
  • 利用聚合API平台的API接口,利用HTTP协议向服务器发送请求,并接受服务器的响应,要求利用cJ
    目录题目分析代码结果题目利用聚合API平台的API接口,利用HTTP协议向服务器发送请求,并接受服务器的响应,要求利用cJSON库对服务器的响应数据进行解析,并输出到终端分析1.需从源代码网站GitHub或SourceForge代码网站下载cJSON库及阅读下载的README相关手册如何使用cJSON库;2.使用......
  • 初始化三板斧 - centos7
    1、关闭防火墙、关闭SELinux①立即关闭防火墙systemctlstopfirewalld②设置开机关闭防火墙systemctldisablefirewalld③立即关闭SELinxusetenforce0④设置开机关闭SELinux将SELINUX=enforcing 修改替换为SELINUX=disabledvim/etc/selinux/configsed‘s......
  • Dragon Boat Festival
    TheDragonBoatFestival,alsoknownastheDuanwuFestival,isasignificantculturaleventinChina.Itfallsonthefifthdayofthefifthlunarmonth,atimewhenfamiliesgathertocelebrateandcommemoratetheancientpoetQuYuan.Itisapitythat......
  • 小程序中的事件处理
    事件处理一个应用仅仅只有界面展示是不够的,还需要和用户做交互,例如:响应用户的点击、获取用户输入的值等等,在小程序里边,我们就通过编写JS脚本文件来处理用户的操作1.事件绑定和事件对象小程序中绑定事件与在网页开发中绑定事件几乎一致,只不过在小程序不能通过on的方......
  • [DP] [倍增优化] Luogu P1081 [NOIP2012 提高组] 开车旅行
    [NOIP2012提高组]开车旅行题目描述小\(\text{A}\)和小\(\text{B}\)决定利用假期外出旅行,他们将想去的城市从$1$到\(n\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为\(h_i\),城市\(i\)和城市\(j\)之间的距......
  • python安装库失败问题解决
    相信很多小伙伴在安装python软件包时候会遇到各种各样的报错吧,为此针对这些问题我进行了汇总并解决。 此时,使用cmd,pipinstall--相应包名称  这里需要升级一下pip,python.exe-mpipinstall--upgradepip然后按照操作一步步就可以解决咯。 ......
  • 正态性检验
     正态性检验是利用观测数据判断总体是否服从正态分布的检验,它是统计判决中重要的一种特殊的拟合优度假设检验。正态性检验的方法有很多,以下列举几种常用的方法:1.**图示法**:比如分位数-分位数图(Quantile-QuantilePlot,Q-Q图),这是一种常见的图示方法。通过对数据直方图曲线与......
  • 用Tensorflow API:tf.keras搭建网络八股:六步法
    #想要搭建属于自己的神经网络模型么,跟我做六步就好#入门课程可看Tensorflow2.0#激活函数教程#课程很好如有不懂可私信交流总览六步法的简要内容import      第一步引入相关模块train,test    第二步说明训练集(特征)和测试集(标签)是什么model=tf.k......
  • 初识C语言--第五天
    ---循环语句--while循环    格式:                while(条件){        循环语句块;                }流程图:示例代码:输出结果:  -break用法        break用在循环中是用来终止循环的,当满足某个......