首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
分治NTT prufer序列 计数
2024-08-03
【题解】CJOI2019 登峰造鸡境 (Prufer序列+斯特林数)
[题解]CJOI2019 登峰造鸡境 (Prufer序列+斯特林数) 题目背景 舒服了. 题目描述 你有一颗n个点的无根树,每个点有有一个标号(1~n). 现在你知道,总共有m个叶子节点,求不同的树的形态方案数. 答案对\(10^9+7\)取模. 下面是一些可能有用的定义: 叶子:度数为1的点. 不同:若对于两颗标号相同的树\(T1=(V,E_1),T2=(V,E_2)\),\(T1\neq T2\)当且仅当存在\((u,v) \in E_1 ,(u,v) \notin E_2\) 输入格式 一
5.13 省选模拟赛 优雅的绽放吧,墨染樱花 多项式 prufer序列 计数 dp
LINK:优雅的绽放吧,墨染樱花 当时考完只会50分的做法 最近做了某道题受到启发 故会做这道题目了.(末尾附30分 50分 100分code 看到度数容易想到prufer序列 考虑dp统计方案数. 设f[i][j]表示前i个数字占了prufer序列j个位置的方案数.最后答案为f[n][n-2]. 容易想到转移 \(f[i][j]+=f[i-1][k]\cdot C(n-k,j-k)\cdot w_i^{j-k+1}\cdot (j-k+1)\) 复杂度n^3 期望得分30. 容易发现第二维是一
prufer序列计数的一些结论
\(prufer\)序列和完全图的生成树一一对应(考虑构造) 完全图的生成树个数为\(n^{n - 2}\) 满足第\(i\)个点的度数为\(d_i\)的生成树为\(\frac{n!}{\prod (d_i - 1) !}\) 把\(m\)个联通块,第\(i\)个大小为\(a_i\),连接起来的方案数为\(n^{m - 2} \prod a_i\) \(n\)个点,指定\(k\)个点在不同的树中,形成\(k\)个森林的方案数为\(k * n^{n - k - 1}\)
HDU 5279 分治NTT 图的计数
思路: 显然每个子图内都是森林 去掉所有子图1和n都连通且每条大边都存在的情况 直接DP上 NTT优化一波 注意前两项的值.. //By SiriusRen #include <bits/stdc++.h> using namespace std; ,N=; int cases,n,R[N],fac[N],inv[N],A[N],B[N],h[N],f[N],g[N],jy; int power(int x,int y){ ; while(y){ )r=1ll*x*r%mod; x=1ll*x
[HNOI2004][bzoj1211] 树的计数(prufer序列)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3432 Solved: 1295[Submit][Status][Discuss] Description 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数. Input 第一行是一个正整数n,表
洛谷P5219 无聊的水题 I [prufer序列,生成函数,NTT]
传送门 思路 有标号无根树的计数,还和度数有关,显然可以想到prufer序列. 问题就等价于求长度为\(n-2\),值域为\([1,n]\),出现次数最多的恰好出现\(m-1\)次,这样的序列有哪些. 恰好\(m-1\)次不好求,变成最多\(m-1\)减去最多\(m-2\)的方案数. 考虑指数型生成函数.设要求的最多为\(M\),则设\(A(x)=\sum_{i=0}^M \frac{1}{i!}x^i\),答案就为\((n-2)![x^{n-2}]A^n(x)\),多项式快速幂即可. 代码 #
HDU 5552 Bus Routes(2015合肥现场赛A,计数,分治NTT)
题意 给定n个点,任意两点之间可以不连边也可以连边.如果连边的话可以染上m种颜色. 求最后形成的图,是一个带环连通图的方案数. 首先答案是n个点的图减去n个点能形成的树. n个点能形成的树的方案数比较好求,根据prufer序列可以知道n个点形成的无根树的个数为$n^{n-2}$ 那么现在问题变成求n个点形成的连通图的个数. 图有连通和不连通的,那么就是图的总数减去不连通的图的总数. 图的总数很简单,$m^{\frac{n(n-1)}{2}}$,那么现在要求不连通的图的总数. 设$f(n)$为$
uoj#335. 【清华集训2017】生成树计数(prufer序列+生成函数+多项式)
传送门 好神仙的题目--又一次有了做一题学一堆的美好体验 据说本题有第二类斯特林数+分治\(FFT\)的做法,然而咱实在看不懂写的是啥,题解贴这里,有兴趣的可以自己去瞅瞅,看懂了记得回来跟咱讲讲 前置芝士 \(prufer\)序列 \(prufer\)序列是个啥? 对于一棵无根树,我们找到它的标号最小的叶子,删去它,并记下与它相邻的节点的标号.重复这个过程直到树上的节点数为\(2\)为止.这个时候我们得到了一个长度为\(n-2\)的序列就是这棵无根树的\(prufer\)序列 很明显,每一棵无根
树的计数 + prufer序列与Cayley公式 学习笔记
首先是 Martrix67 的博文:http://www.matrix67.com/blog/archives/682 然后是morejarphone同学的博文:http://blog.csdn.net/morejarphone/article/details/50677172 因为是偶然翻了他的这篇博文,然后就秒会了. prufer数列,可以用来解一些关于无根树计数的问题. prufer数列是一种无根树的编码表示,对于一棵n个节点带编号的无根树,对应唯一一串长度为n-1的prufer编码. (
【XSY1295】calc n个点n条边无向连通图计数 prufer序列
题目大意 求\(n\)个点\(n\)条边的无向连通图的个数 \(n\leq 5000\) 题解 显然是一个环上有很多外向树. 首先有一个东西:\(n\)个点选\(k\)个点作为树的根的生成森林个数为: \[ \binom{n}{k}\times n^{n-k-1}\times k \] 前面\(\binom{n}{k}\)是这些根的选编号的方案数,后面是prufer序列得到的:前面\(n-k-1\)个数可以是\(1\)~\(n\),第\(n-k\)个数是\(1\)~\(k\). 我的理解是:每个
无根树的计数——prufer序列
参考博客https://www.cnblogs.com/dirge/p/5503289.html (1)prufer数列是一种无根树的编码表示,类似于hash. 一棵n个节点带编号的无根树,对应唯一串长度为n-2的prufer编码.所以一个n阶完全图的生成树个数就是. 首先定义无根树中度数为1的节点是叶子节点. 找到编号最小的叶子并删除,序列中添加与之相连的节点编号,重复执行直到只剩下2个节点. (2)prufer序列转化为无根树. 我们设点集为{1,2...n}.然后我们每次找到点集中没有出现
【BZOJ 1211】 1211: [HNOI2004]树的计数 (prufer序列、计数)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2468 Solved: 868 Description 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数. Input 第一行是一个正整数n,表示树有n个结点.第二行有n个数,第i个数表示di,即
Prufer序列与树的计数(坑)
\(prufer\)序列: 无根树转\(prufer\)序列: 不断找编号最小的叶子节点,删掉并在序列中加入他相连的节点. \(prufer\)转无根树: 找到在目前\(prufer\)序列中未出现且未使用的编号最小的的节点与当前位相连,当前位从\(prufer\)序列中删除,节点标为已使用,剩余最后两个未使用的节点相连. 性质: \(1.prufer\)序列中某个编号出现的次数就等于这个编号的节点在无根树中的度数-1. \(2.\)一棵n个节点的无根树唯一地对应了一个长度为\(n-2\)的数列
Luogu P2290 [HNOI2004]树的计数 Prufer序列+组合数
最近碰了$prufer$ 序列和组合数..于是老师留了一道题:P2624 [HNOI2008]明明的烦恼 qwq要用高精... 于是我们有了弱化版:P2290 [HNOI2004]树的计数(考一样的可还行OvO) 首先前置知识:$Prufer序列$ 然后,因为对于一个$ Prufer $序列有$n-2$ 项,而每个点的度数-1是这个点在$ Prufer$ 序列中出现的次数 所以...这不是多重集的排列吗(不懂多重集?) 所以我们成功了一半(雾) 在计算时会爆$ long \space long
树的计数 Prufer序列+Cayley公式
先安利一发.让我秒懂.. 第一次讲这个是在寒假...然而当时秦神太巨了导致我这个蒟蒻自闭+颓废...早就忘了这个东西了... 结果今天老师留的题中有两道这种的:Luogu P4981 P4430 然后决定了解一下... 一.Prufer序列 Prufer序列,可以用来解一些关于无根树计数的问题. Prufer序列是一种无根树的编码表示,对于一棵n个节点带编号的无根树,对应唯一一串长度为n-1的Prufer编码,这性质很好. 1.无根树转化为Prufer序列 首先定义无根树中度数为1的节点是叶子节
bzoj1211: [HNOI2004]树的计数(prufer序列+组合数学)
1211: [HNOI2004]树的计数 题目:传送门 题解: 今天刚学prufer序列,先打几道简单题 首先我们知道prufer序列和一颗无根树是一一对应的,那么对于任意一个节点,假设这个节点的度数为k,那么在prufer序列里面这个节点就会出现k-1次 (反过来也同理成立) 那么具体的原因这里有解释: 对于任意一个节点在prufer序列里出现一次的话,那么就表示我有一个孩子被删了,那么少了的一次去哪里了呢,因为每次加进去的都是父亲节点,那么少的肯定就是我自己连出去的一条边啊... 知道了这个
树的计数 + prufer序列与Cayley公式(转载)
原文出处:https://www.cnblogs.com/dirge/p/5503289.html 树的计数 + prufer序列与Cayley公式 学习笔记(转载) 首先是 Martrix67 的博文:http://www.matrix67.com/blog/archives/682 然后是morejarphone同学的博文:http://blog.csdn.net/morejarphone/article/details/50677172 因为是偶然翻了他的这篇博文,然后就秒会了. pruf
bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3432 Solved: 1295[Submit][Status][Discuss] Description 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数. Input 第一行是一个正整数n,表
2021.07.18 P2290 树的计数(prufer序列、组合数学)
2021.07.18 P2290 树的计数(prufer序列.组合数学) [P2290 HNOI2004]树的计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.prufer序列 2.多重集的全排列公式 \[ \frac{(n-2)!}{\prod_{i=1}^n (d_i-1)!} \] 多重集的全排列 - Tekka - 博客园 (cnblogs.com) 3.排列组合优化算法及组合数与杨辉三角的关系 (4条消息) 杨辉三角与组合数_Bell的博客-CSDN博
bzoj1211: prufer序列 | [HNOI2004]树的计数
题目大意: 告诉你树上每个节点的度数,让你构建出这样一棵树,问能够构建出树的种树 这里注意数量为0的情况,就是 当 n=1时,节点度数>0 n>1时,所有节点度数相加-n!=n-2 可以通过通过除了根,必然有n-1个节点作为上一个节点的儿子来理解 然后通过学习prufer序列可知 每一颗树都能够建成唯一的序列,这里的n-2个数就是任意插入到prufer序列中,这很明显就是一个排列,那么之后就是计算 ans = (n-2)!/(w[1]!*w[2]!..w[n]!) w[i]表示i节点上的度数减
[BZOJ1211][HNOI2004]树的计数(Prufer序列)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1211 分析: 关于无根树的组合数学问题肯定想到Prufer序列,类似bzoj1005那题 说下prufer序列的性质: 1.一个无根树对应一个prufer序列 2.一个n个节点无根树对应的prufer序列长度为n-2 3.prufer序列中某节点出现的次数==这个节点在对应的无根树中度数-1 所以这题求无根树的数量等价于求prufer序列的数量. 注意无解的情况就行了.
热门专题
双击bat 设置环境变量
浏览器配置nginx ssl证书
jquery each判断是否不重复
若依普通用户只能看到自己部门的数据
append是js原生方法吗
Linux中redis没权限怎么进入
day_of_month celery 每隔一天执行一次
BaseAdapter 添加表头
nodejs multipart 获取文件
utf8mb4_bin和utf8mb4_general_ci
cordova lampa 接收参数
python 发送 kafaka
小米刷新率怎么root
dnvisualizer 如何导出sql带clob
ubuntu 18.04下载安装mysql5.7
tensorflow2自定义损失函数添加正则项
小程序 授权用户 微信用户
wpf自定义按钮控件
C# DataTable 新增数据
ListView嵌套点击事件冲突