2021.07.18 P2290 树的计数(prufer序列、组合数学)
2021.07.18 P2290 树的计数(prufer序列、组合数学)
[P2290 HNOI2004]树的计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
重点:
1.prufer序列
2.多重集的全排列公式
\]
多重集的全排列 - Tekka - 博客园 (cnblogs.com)
3.排列组合优化算法及组合数与杨辉三角的关系
(4条消息) 杨辉三角与组合数_Bell的博客-CSDN博客_杨辉三角组合数公式
题意:
直接使用多重集的全排列公式,死算~
分析:
同上。
代码如下:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
#define int long long
const int N=160;
int n,a[N],sum,ans,f[N][N];
inline int read(){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')w=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		s=s*10+ch-'0';
		ch=getchar();
	}
	return s*w;
}
signed main(){
	n=read();
	if(n==1){
		int c;
		c=read();
		if(c==0)cout<<"1";
		else cout<<"0";
		return 0;
	}
	for(int i=0;i<=n;i++){
		f[i][0]=1;
		for(int j=1;j<=i;j++)
		f[i][j]=f[i-1][j]+f[i-1][j-1];//,cout<<f[i][j]<<" ";
		//cout<<endl;//
	}
	//cout<<endl;//
	for(int i=1;i<=n;i++){
		a[i]=read();
		if(!a[i]){
			cout<<"0";
			return 0;
		}
		--a[i];
		sum+=a[i];
	}
	if(sum!=n-2){
		cout<<"0";
		return 0;
	}
	sum=0,ans=1;
	for(int i=1;i<=n;i++)
	ans*=f[n-2-sum][a[i]],sum+=a[i];
	cout<<ans;
	return 0;
}
2021.07.18 P2290 树的计数(prufer序列、组合数学)的更多相关文章
- 树的计数 + prufer序列与Cayley公式(转载)
		原文出处:https://www.cnblogs.com/dirge/p/5503289.html 树的计数 + prufer序列与Cayley公式 学习笔记(转载) 首先是 Martrix67 的博 ... 
- 树的计数 + prufer序列与Cayley公式 学习笔记
		首先是 Martrix67 的博文:http://www.matrix67.com/blog/archives/682 然后是morejarphone同学的博文:http://blog.csdn.ne ... 
- 树的计数 Prufer序列+Cayley公式
		先安利一发.让我秒懂.. 第一次讲这个是在寒假...然而当时秦神太巨了导致我这个蒟蒻自闭+颓废...早就忘了这个东西了... 结果今天老师留的题中有两道这种的:Luogu P4981 P4430 然后 ... 
- Luogu P2290 [HNOI2004]树的计数 Prufer序列+组合数
		最近碰了$prufer$ 序列和组合数..于是老师留了一道题:P2624 [HNOI2008]明明的烦恼 qwq要用高精... 于是我们有了弱化版:P2290 [HNOI2004]树的计数(考一样的可 ... 
- BZOJ 1211 HNOI2004 树的计数 Prufer序列
		题目大意:给定一棵树中全部点的度数,求有多少种可能的树 Prufer序列.详细參考[HNOI2008]明明的烦恼 直接乘会爆long long,所以先把每一个数分解质因数.把质因数的次数相加相减.然后 ... 
- 【BZOJ1005/1211】[HNOI2008]明明的烦恼/[HNOI2004]树的计数 Prufer序列+高精度
		[BZOJ1005][HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可 ... 
- 【BZOJ1211】【HNOI2004】树的计数 prufer序列
		题目描述 给你\(n\)和\(n\)个点的度数,问你有多少个满足度数要求的生成树. 无解输出\(0\).保证答案不超过\({10}^{17}\). \(n\leq 150\) 题解 考虑prufer序 ... 
- bzoj1211: [HNOI2004]树的计数  prufer序列裸题
		一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di ... 
- BZOJ1211: [HNOI2004]树的计数(prufer序列)
		Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2987 Solved: 1111[Submit][Status][Discuss] Descript ... 
随机推荐
- Redis安装、说明、Python中使用
			Redis安装与简单使用 Redis说明 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库 redis特点 Redis 支持数据的持久化,可以将内存中的数据保存在磁盘 ... 
- OpenCV使用级联分类器实现人脸检测
			一.概述 案例:使用opencv级联分类器CascadeClassifier+其提供的特征数据实现人脸检测,检测到人脸后使用红框画出来. API介绍:detectMultiScale( InputAr ... 
- 深度优先算法--对DFS的一些小小的总结(一)
			提到DFS,我们首先想到的是对树的DFS,例如下面的例子:求二叉树的深度 int TreeDepth(BinaryTreeNode* root){ if(root==nullptr)return 0; ... 
- Mybatis框架基础入门(三)--Mapper动态代理方式开发
			使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方 ... 
- brew 安装redis
			转:https://www.jianshu.com/p/e1e5717049e8 编辑新安装php的 p.p1 { margin: 0; font: 11px Menlo; color: rgba(0 ... 
- MySQL 中有哪几种锁?
			1.表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 2.行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也最高. 3.页面锁:开销和 ... 
- MySQL 里记录货币用什么字段类型?
			NUMERIC 和 DECIMAL 类型被 MySQL 实现为同样的类型,这在 SQL92 标准允 许.他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数 据.当声明一个类是这些类型之 ... 
- window10使用putty传输文件到Linux服务器
			由于Linux和Linux可以使用scp进行传输文件,而window系统无法向Linux传输文件,当然,有xshell等等类似的工具可以进行操作:putty工具就可以实现,毕竟zip压缩包也不大,启动 ... 
- 在虚拟机里面运行java程序
			首先输入vi在里面写一个java程序 然后再查找jdk 复制jdk名字 然后安装jdk 安装完之后输入Javac加你创建的文件名 然后再输入Java 和文件名(这个不要加后缀)然后就打印出来了 
- 为什么 redis 需要把所有数据放到内存中?
			答Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数 据写入磁盘.所以 redis 具有快速和数据持久化的特征.如果不将数据放在内存中, 磁盘 I/O 速度为严重影响 redi ... 
