博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1211 HNOI2004 树的计数 Prufer序列
阅读量:6081 次
发布时间:2019-06-20

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

题目大意:给定一棵树中全部点的度数,求有多少种可能的树

Prufer序列。详细參考[HNOI2008]明明的烦恼

直接乘会爆long long,所以先把每一个数分解质因数。把质因数的次数相加相减。然后再乘起来

注意此题无解须要输出0

当n!=1&&d[i]==0时 输出0

当Σ(d[i]-1)!=n-2时输出0

写代码各种脑残……竟然直接算了n-2没用阶乘……

#include
#include
#include
#include
#define M 160using namespace std;typedef long long ll;int n,sum,d[M];int cnt[M];ll ans=1;ll Quick_Power(ll x,int y){ ll re=1; while(y) { if(y&1)re*=x; x*=x; y>>=1; } return re;}void Decomposition(int x,int flag){ int i; for(i=2;i*i<=x;i++) while(x%i==0) cnt[i]+=flag,x/=i; if(x^1) cnt[x]+=flag;}int main(){ int i,j; cin>>n; for(i=2;i<=n-2;i++) Decomposition(i,1); for(i=1;i<=n;i++) { scanf("%d",&d[i]); if(!d[i]&&n!=1) { puts("0"); return 0; } sum+=d[i]-1; for(j=2;j<=d[i]-1;j++) Decomposition(j,-1); } if(sum!=n-2) { puts("0"); return 0; } for(i=1;i<=n-2;i++) if(cnt[i]) ans*=Quick_Power(i,cnt[i]); cout<
<

转载地址:http://wkkwa.baihongyu.com/

你可能感兴趣的文章
Android学习之BMI1.0
查看>>
PureFlex System成为IT架构优化的根基
查看>>
word精华编号篇之一自动编号
查看>>
centos 安装 nginx-mysql-redis
查看>>
C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
查看>>
sqoop相关整理记录
查看>>
Solr基础教程之Schema.xml(二)
查看>>
给控件添加长按弹出菜单(上下文菜单,又叫contextMenu)
查看>>
傻瓜式 Material Design 风格矢量图标生成器
查看>>
Nodejs创建HTTPS服务器
查看>>
ubuntu12.04 安装sublime text 2及插件。
查看>>
AFNetworking、MKNetworkKit和ASIHTTPRequest比较
查看>>
Impala 表使用 Avro 文件格式(翻译)
查看>>
http中返回错误代码的意思
查看>>
Spring – 开发环境 – 手动配置
查看>>
!==和!=有什么区别(js php)
查看>>
python入门神图
查看>>
我的友情链接
查看>>
[一文一命令]ls命令详解
查看>>
EBS FORM 失效工具栏按钮
查看>>