博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ 1005] 明明的烦恼
阅读量:4946 次
发布时间:2019-06-11

本文共 1621 字,大约阅读时间需要 5 分钟。

[BZOJ 1005] 明明的烦恼

标签: 组合数 Prufer序列


题意

给出一棵树上某些点的度数(-1 就是不限制度数)

求有多少种不同的树的个数

题解

要做这道题首先得知道Prufer序列。

每一个这样的序列都对应着一棵树。
同时每个点的度数减1 就是Prufer序列上这个点的出现次数。
然后用组合数搞一搞就行了。
这题要用高精度。

Code

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define REP(i,a,b) for(int i=(a),_end_=(b);i<=_end_;i++)#define DREP(i,a,b) for(int i=(a),_end_=(b);i>=_end_;i--)#define EREP(i,a) for(int i=start[(a)];i;i=e[i].next)inline int read(){ int sum=0,p=1;char ch=getchar(); while(!(('0'<=ch && ch<='9') || ch=='-'))ch=getchar(); if(ch=='-')p=-1,ch=getchar(); while('0'<=ch && ch<='9')sum=sum*10+ch-48,ch=getchar(); return sum*p;}const int maxn=1e3+20;int n,a[maxn],sum,num;int prime[maxn],cnt,mark[maxn];void prepare(){ REP(i,2,1000) { if(!mark[i])prime[++cnt]=i,mark[i]=cnt; for(int j=1;j<=cnt && prime[j]*i<=1000;j++) { mark[i*prime[j]]=1; if(!(i % prime[j]))break; } }}int s[maxn];void fj(int x,int add){ int j=1; while(prime[j]*prime[j]<=x) { while(!(x % prime[j]))x/=prime[j],s[j]+=add; j++; } if(x>1)s[mark[x]]+=add;}void init(){ n=read(); REP(i,1,n) { a[i]=read(); if(a[i]==-1)num++;else sum+=a[i]-1; if(!a[i]) { cout<<0<
n-2) { cout<<0<
1)REP(j,1,a[i]-1)fj(j,-1); } fj(num,n-2-sum);}int cj[maxn*10],len=1;void doing(){ cj[1]=1; REP(i,1,cnt) { if(s[i]) { REP(j,1,s[i]) { REP(l,1,len) { cj[l]*=prime[i]; } len+=4; REP(l,1,len) { cj[l+1]+=cj[l]/10; cj[l]%=10; } while(!cj[len])len--; } } } DREP(i,len,1)cout<

转载于:https://www.cnblogs.com/gzy-cjoier/p/7476914.html

你可能感兴趣的文章
C#中的类型相等与恒等(Equality & Identity)
查看>>
第三次作业
查看>>
nodejs中 图文混搭
查看>>
使用js控制文本超出部分显示省略号
查看>>
HDU ACM 1180 诡异的楼梯 (优先队列 + 广搜)
查看>>
深入理解css浮动
查看>>
Android 开发者福利Google Developers中国网站发布
查看>>
【模板】线段树 2
查看>>
《零基础入门学习Python》学习过程笔记【017函数】
查看>>
Block Demo
查看>>
LintCode Coins in a Line III
查看>>
Oracle定义varchar2()类型存储汉字的长度问题
查看>>
python 2.7 pip install plt 报错,应该是 pip install matplotlib
查看>>
C# 解压缩
查看>>
Centos7安装教程
查看>>
ABAP术语-ALE
查看>>
删除SVN信息
查看>>
IDEA 转移C盘 .IntelliJIdea 索引目录
查看>>
CentOS 6通过yum升级Git
查看>>
python接口自动化测试三:代码发送HTTP请求
查看>>