【BZOJ 1211】 [HNOI2004]树的计数
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
prufer数列的应用
http://www.cnblogs.com/AWCXV/p/7626625.html
这一题没有节点的度数不定。
因此。
所有节点的度数-1的和结果一定要是n-2.
否则就无解。
然后把tot代成n-2就好了。
做法就一样了。
(大体思路就是,从n-2个空格里面选出d[i]个空格放节点i,从n-2-d[i]个空格里面选出d[i+1]个空格放节点i+1
(化简一下就成为上文中的式子了。
(d[i]0的时候在n1的时候是有解的
(可以不用高精度了这题
(结论,n!质因数分解后每个质因数p的指数为∑n/i 其中i为i,i2,i3...i^x 其中i^x<=n
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 150;
int n,d[N+10],cnt[N+10];
bool is[N+10];
bool ok(int n){
int len = sqrt(n);
for (int i = 2;i <= len;i++)
if (n%i==0)
return false;
return true;
}
void go(int n,int delta){
for (int i = 1;i <= n;i++){
if (is[i]){
int sum = 0;
for (int j = i;j <= n;j*=i) sum+=n/j;
cnt[i]+=sum*delta;
}
}
}
int main(){
scanf("%d",&n);
int tot = 0;
for (int i = 1;i <= n;i++){
scanf("%d",&d[i]);
if (d[i]==0 && n!=1) return puts("0"),0;
d[i]--;
tot+=d[i];
}
if (tot!=n-2) return puts("0"),0;
for (int i = 2;i <= n;i++)
if (ok(i)) is[i] = true;
go(n-2,1);
for (int i = 1;i <= n;i++) go(d[i],-1);
long long temp = 1;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= cnt[i];j++)
temp = temp*i;
printf("%lld\n",temp);
return 0;
}
【BZOJ 1211】 [HNOI2004]树的计数的更多相关文章
- BZOJ 1211: [HNOI2004]树的计数( 组合数学 )
知道prufer序列就能写...就是求个可重集的排列...先判掉奇怪的情况, 然后答案是(N-2)!/π(d[i]-1)! -------------------------------------- ...
- bzoj 1211: [HNOI2004]树的计数 -- purfer序列
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MB Description 一个有n个结点的树,设它的结点分别为v1, v2, ...
- BZOJ 1211 HNOI2004 树的计数 Prufer序列
题目大意:给定一棵树中全部点的度数,求有多少种可能的树 Prufer序列.详细參考[HNOI2008]明明的烦恼 直接乘会爆long long,所以先把每一个数分解质因数.把质因数的次数相加相减.然后 ...
- BZOJ 1211[HNOI2004]树的计数 - prufer数列
描述 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi) ...
- 【刷题】BZOJ 1211 [HNOI2004]树的计数
Description 一个有n个结点的树,设它的结点分别为v1, v2, -, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, -, dn,编程需要 ...
- bzoj 1211: [HNOI2004]树的计数
prufer的应用.. 详细见这篇博客:https://www.cnblogs.com/dirge/p/5503289.html import java.math.BigInteger; import ...
- 【BZOJ 1211】 1211: [HNOI2004]树的计数 (prufer序列、计数)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2468 Solved: 868 Description 一 ...
- BZOJ1211: [HNOI2004]树的计数
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1245 Solved: 383[Submit][Statu ...
- prufer BZOJ1211: [HNOI2004]树的计数
以前做过几题..好久过去全忘了. 看来是要记一下... [prufer] n个点的无根树(点都是标号的,distinct)对应一个 长度n-2的数列 所以 n个点的无根树有n^(n-2)种 树 转 p ...
- bzoj1211: [HNOI2004]树的计数(prufer序列+组合数学)
1211: [HNOI2004]树的计数 题目:传送门 题解: 今天刚学prufer序列,先打几道简单题 首先我们知道prufer序列和一颗无根树是一一对应的,那么对于任意一个节点,假设这个节点的度数 ...
随机推荐
- mysql在windows下主从同步配置
mysql主从同步: 1.为什么要主从同步? 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询负载. ...
- uva是崩了 吗,还是我太年轻?
刚刚提交了一道题,发现提交状态一直是in judge queue,去提交状态那里看了下,排在我20分钟前的也在in judge queue,不知道前面还有多少.顿时感到好无力......
- 【Python】python网络协议
套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议.用于实现client-server的网络互联,以下对这些协议做一个简单的介绍. 1.文件传输 FTP:文件传输协议.能够上传 ...
- 转:Oracle GoldenGate学习之Goldengate介绍
转自:http://blog.sina.com.cn/s/blog_a32eff28010136d9.html 日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据 ...
- kentico中的page template的使用
父页面使用自己的template 子页面,也使用自己的template. 然后父页面中需要添加一个place holder. 子页面的继承,选择inherit only master page. 这样 ...
- JDBC整理
JDBC提供了独立于数据库的统一Api,用以执行SQL命令.JDBC API由以下常用的接口和类组成: DriverManagement:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取C ...
- 杂项:WCF
ylbtech-杂项:WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了 ...
- 对python变量的理解
#!/usr/bin/python class Person: '''some words content or descriptions!''' name='luomingchuan' _age = ...
- 观光奶牛Sightseeing Cows (二分+spfa(dfs))
观光奶牛 农夫约翰已决定通过带他们参观大城市来奖励他们的辛苦工作!奶牛必须决定如何最好地度过他们的空闲时间. 幸运的是,他们有一个详细的城市地图,显示L(2≤L≤1000)主要地标(方便编号为1 .. ...
- E5中遍历数组的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...