【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

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]树的计数的更多相关文章

  1. BZOJ 1211: [HNOI2004]树的计数( 组合数学 )

    知道prufer序列就能写...就是求个可重集的排列...先判掉奇怪的情况, 然后答案是(N-2)!/π(d[i]-1)! -------------------------------------- ...

  2. bzoj 1211: [HNOI2004]树的计数 -- purfer序列

    1211: [HNOI2004]树的计数 Time Limit: 10 Sec  Memory Limit: 162 MB Description 一个有n个结点的树,设它的结点分别为v1, v2, ...

  3. BZOJ 1211 HNOI2004 树的计数 Prufer序列

    题目大意:给定一棵树中全部点的度数,求有多少种可能的树 Prufer序列.详细參考[HNOI2008]明明的烦恼 直接乘会爆long long,所以先把每一个数分解质因数.把质因数的次数相加相减.然后 ...

  4. BZOJ 1211[HNOI2004]树的计数 - prufer数列

    描述 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi) ...

  5. 【刷题】BZOJ 1211 [HNOI2004]树的计数

    Description 一个有n个结点的树,设它的结点分别为v1, v2, -, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, -, dn,编程需要 ...

  6. bzoj 1211: [HNOI2004]树的计数

    prufer的应用.. 详细见这篇博客:https://www.cnblogs.com/dirge/p/5503289.html import java.math.BigInteger; import ...

  7. 【BZOJ 1211】 1211: [HNOI2004]树的计数 (prufer序列、计数)

    1211: [HNOI2004]树的计数 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2468  Solved: 868 Description 一 ...

  8. BZOJ1211: [HNOI2004]树的计数

    1211: [HNOI2004]树的计数 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1245  Solved: 383[Submit][Statu ...

  9. prufer BZOJ1211: [HNOI2004]树的计数

    以前做过几题..好久过去全忘了. 看来是要记一下... [prufer] n个点的无根树(点都是标号的,distinct)对应一个 长度n-2的数列 所以 n个点的无根树有n^(n-2)种 树 转 p ...

  10. bzoj1211: [HNOI2004]树的计数(prufer序列+组合数学)

    1211: [HNOI2004]树的计数 题目:传送门 题解: 今天刚学prufer序列,先打几道简单题 首先我们知道prufer序列和一颗无根树是一一对应的,那么对于任意一个节点,假设这个节点的度数 ...

随机推荐

  1. 关于python从Oracle中读取数据中文全是问号的问题

    import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' 问题搞定

  2. ie固定table单元格宽度

    <table border="0" style="width:690px; table-layout:fixed;"> <tr> < ...

  3. 工具-常用VS插件

    工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节, ...

  4. Android慎用layout嵌套, 尽量控制在5层下面java.lang.StackOverflowError

    一.探寻原因 在一个复杂的layout嵌套较多layout的android界面.在Android 2.3.内存较低 的机型上,出现 java.lang.StackOverflowError 这个Exc ...

  5. WifiManager类具体解释

    public class WifiManager extends Object java.lang.Object    ↳ android.net.wifi.WifiManager 类概述 This ...

  6. [React Router] Create a ProtectedRoute Component in React Router (setState callback to force update)

    In this lesson we'll create a protected route just for logged in users. We'll combine a Route with a ...

  7. Android APP漏洞挖掘

    0x00 1.组件公开安全漏洞 參考Android 组件安全. 2.Content Provider文件文件夹遍历漏洞 參考Content Provider文件文件夹遍历漏洞浅析. 3.Android ...

  8. reactjs simple text editor

    import React, { Component } from 'react' import PubSub from 'pubsub' import GlobalVars from 'globalV ...

  9. js保留两位小数的解决的方法

    var a = 123.456; a = a..toFixed(2); alert(a);//结果:123.46

  10. UVA - 11762 - Race to 1 记忆化概率

    Dilu have learned a new thing about integers, which is - any positive integer greater than 1 can bed ...