[HNOI2004] 树的计数 - prufer序列
给定树每个节点的 degree,问满足条件的树的数目。 \(n\leq 150, ans \leq 10^{17}\)
Solution

注意特判各种坑点
\(\sum d_i - 1 = n-2\),否则非法
\(d_i = 0\),非法
#include <bits/stdc++.h>
using namespace std;
#define int long long
int f[155],n,d[155],isp[155],cnt[155],ans=1;
void push(int x) {
for(int i=2;i<=n;i++) if(isp[i]) {
while(x%i==0) x/=i,cnt[i]++;
}
}
void pop(int x) {
for(int i=2;i<=n;i++) if(isp[i]) {
while(x%i==0) x/=i,cnt[i]--;
}
}
signed main() {
cin>>n;
int sum=0;
for(int i=1;i<=n;i++) cin>>d[i], sum+=d[i]-1;
if(sum!=n-2) {cout<<0; return 0;}
for(int i=1;i<=n;i++) {
int flag=1;
for(int j=2;j<=sqrt(i);j++) {
if(i%j==0) flag=0;
}
if(flag) isp[i]=1;
}
if(n==1) {
if(d[1]==0) cout<<1<<endl;
else cout<<0<<endl;
}
else {
for(int i=1;i<=n;i++) if(d[i]==0) {cout<<0; return 0;}
for(int i=2;i<=n-2;i++) push(i);
for(int i=1;i<=n;i++) for(int j=2;j<=d[i]-1;j++) pop(j);
for(int i=1;i<=n;i++) while(cnt[i]) ans*=i, --cnt[i];
cout<<ans;
}
}
[HNOI2004] 树的计数 - prufer序列的更多相关文章
- 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个结点的树,设它的结点分别为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 ...
- 树的计数 + 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 ...
- bzoj1211: [HNOI2004]树的计数 prufer编码
题目链接 bzoj1211: [HNOI2004]树的计数 题解 prufer序 可重排列计数 代码 #include<bits/stdc++.h> using namespace std ...
- bzoj 1211: [HNOI2004]树的计数 -- purfer序列
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MB Description 一个有n个结点的树,设它的结点分别为v1, v2, ...
随机推荐
- Windows Server 2012 R2的安装(GUI桌面版本)
镜像:cn_windows_server_2012_r2_x64_dvd_2707961.iso 1.将安装光盘插入服务器,开机会读取到Windows安装程序,点击下一步 2.点击现在安装 3 ...
- Centos7内核版安装nginx环境问题及解决方法
错误信息:./configure: error: C compiler cc is not found解决方案:yum -y install gcc gcc-c++ autoconf automake ...
- 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境
DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing pr ...
- Premiere Pro CC2018安装教程
Premiere Pro CC2018安装教程 下载安装包:去官网下载或者百度PR2018的安装包 解压安装包后,找到Set-up.exe,右键,打开 安装的时候我们需要注册一个账号,点击“获取Ado ...
- vmware进程,虚拟机NAT模式配置固定ip,访问外网与ping通主机
vmware进程杀不掉 在使用vmware虚拟机时,如果强制结束vmware进程,可能会发现在资源监视器中有一个vmware-vmx.exe进程始终关不掉,获得管理员权限去杀或者重启都没有用,然后正常 ...
- 菜鸟linux
//查看系统中文件的使用情况 df -h //查看当前目录下各个文件及目录占用空间大小 du -sh *//查看当期端口使用情况netstat -tlpn //find命令详见--https://ww ...
- ipad的12系统里提示更新到ipdos13,原来安装在12上的app是不是没有了,要重新下载
ipad的12系统里提示更新到ipdos13,原来安装在12上的app是不是没有了,要重新下载 更新后原来的WiFi密码都还在不用重新连接WiFi,桌面壁纸也是原来12系统上的 在Ipad的设置里将1 ...
- PAT甲级代码仓库
大道至简,知易行难.希望能够坚持刷题. PAT甲级真题题库,附上我的代码. Label Title Score Code Level 1001 A+B Format 20 1001 * 1002 A+ ...
- Docker Compose 启动mysql,redis,rabbitmq
这里使用的centos7,首先切换到root. sudo -s 首先去设置下载镜像,否则下载这三个东西要很久,而且可能失败. vim /etc/docker/daemon.json 内容如下: { & ...
- 一些linux软件国内源
1. ubuntu 版本号 Ubuntu 12.04 (LTS)代号为precise. Ubuntu 14.04 (LTS)代号为trusty. Ubuntu 15.04 代号为vivid. Ubun ...