传送门

Solution

根据prufer序列做的题,具体可以看这里

还知道了一种避免高精除的方法quq

Code

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
#define R(i,a,b) for(register int i=(b);i>=(a);i--)
using namespace std; inline int read() {
int x=0,f=1;char c=getchar();
while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}
while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();
return x*f;
} const int N=1010,D=10000; struct Bign{
int da[N<<2],wei;
Bign() {clear();}
void out() {
printf("%d",da[wei]);
R(i,1,wei-1) printf("%04d",da[i]);
putchar('\n');
}
void clear() {memset(da,0,sizeof(da));wei=0;}
}ans;
Bign operator*(Bign a,int b) {
Bign res; res.wei=a.wei; int &wei=res.wei;
F(i,1,wei) res.da[i]=a.da[i]*b;
F(i,1,wei) res.da[i+1]+=res.da[i]/D,res.da[i]%=D;
while(res.da[wei+1]) wei++,res.da[wei+1]=res.da[wei]/D,res.da[wei]%=D;
return res;
} int n,sum,cnt;
int a[N],p1[N],p2[N]; void get_p(int *p,int x) {
int sqr=sqrt(x);
F(i,2,sqr) while(x%i==0) x/=i,p[i]++;
if(x>1) p[x]++;
} int main() {
n=read();
F(i,1,n) {
a[i]=read();if(a[i]==-1) continue;
cnt++;sum+=a[i]-1;
F(j,1,a[i]-1) get_p(p2,j);
}
if(sum>n-2) return putchar('0'),0;
F(i,1,n-2) get_p(p1,i);
F(i,1,n-2-sum) get_p(p2,i),get_p(p1,n-cnt);
F(i,1,n) p1[i]-=p2[i];
ans.da[1]=1;ans.wei=1;
F(i,1,n) F(j,1,p1[i]) ans=ans*i;
ans.out();
return 0;
}

[luogu2624 HNOI2008]明明的烦恼 (prufer+高精)的更多相关文章

  1. BZOJ.1005.[HNOI2008]明明的烦恼(Prufer 高精 排列组合)

    题目链接 若点数确定那么ans = (n-2)!/[(d1-1)!(d2-1)!...(dn-1)!] 现在把那些不确定的点一起考虑(假设有m个),它们在Prufer序列中总出现数就是left=n-2 ...

  2. bzoj 1005: [HNOI2008]明明的烦恼 prufer编号&&生成树计数

    1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2248  Solved: 898[Submit][Statu ...

  3. BZOJ 1005 [HNOI2008]明明的烦恼 (Prufer编码 + 组合数学 + 高精度)

    1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5786  Solved: 2263[Submit][Stat ...

  4. bzoj 1005 [HNOI2008] 明明的烦恼 (prufer编码)

    [HNOI2008]明明的烦恼 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5907  Solved: 2305[Submit][Status][Di ...

  5. Luogu P2624 [HNOI2008]明明的烦恼 Prufer+组合+高精

    好的我把标准版过了... 设$ r_i$为$i$的度数 首先,我们设 $ sum = \Sigma r_i-1$,$ tot $ 为所有能够确定度数的点 所以我们有 $ C ^ {sum} _{n-2 ...

  6. [BZOJ1005] [HNOI2008] 明明的烦恼 (prufer编码)

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...

  7. 【bzoj1005】[HNOI2008]明明的烦恼 Prufer序列+高精度

    题目描述 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? 输入 第一行为N(0 < N < = 1000),接下来N行,第i+1行给出第i ...

  8. bzoj1005: [HNOI2008]明明的烦恼 prufer序列

    https://www.lydsy.com/JudgeOnline/problem.php?id=1005 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的 ...

  9. BZOJ 1005 [HNOI2008]明明的烦恼 ★(Prufer数列)

    题意 N个点,有些点有度数限制,问这些点可以构成几棵不同的树. 思路 [Prufer数列] Prufer数列是无根树的一种数列.在组合数学中,Prufer数列是由一个对于顶点标过号的树转化来的数列,点 ...

随机推荐

  1. ubuntu上java的开发环境 jdk 的安装

    jre下载路径: https://java.com/zh_CN/download/manual.jsp jdk下载路径:http://www.oracle.com/technetwork/java/j ...

  2. [自己动手改wordpress.1]wordpress的插件User-Access-Manager在新的php版本号里面无法执行的bug.

    近期同事在玩wp, 就顺带一起看了下. 她说插件有个不能用. 是一个叫User Access Manager 的插件 详细表现就是在后台填好相应的roles角色的时候, 点提交就会跳到一个错误的页面 ...

  3. [Cocos2d-x v3.x]Mac OX 创建新的Cocos2d-x 3.0 项目

    文章内容来自于: http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game Mac OS X 10.9 Software Requirem ...

  4. 创建虚拟机中的nova-scheduler 调度配置

    一个Openstack 系统中通常包括多个计算节点 root@controller:/etc/nova# nova hypervisor-list +----+-------------------- ...

  5. Project Euler:Problem 33 Digit cancelling fractions

    The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplif ...

  6. Hadoop - MapReduce MRAppMaster-剖析

      一 概述         MRv1主要由编程模型(MapReduce API).资源管理与作业控制块(由JobTracker和TaskTracker组成)和数据处理引擎(由MapTask和Redu ...

  7. linux select函数:Linux下select函数的使用详解【转】

    本文转载自;http://www.bkjia.com/article/28216.html Linux下select函数的使用 Linux下select函数的使用 一.Select 函数详细介绍 Se ...

  8. 协同过滤算法中皮尔逊相关系数的计算 C++

    template <class T1, class T2>double Pearson(std::vector<T1> &inst1, std::vector<T ...

  9. 97. ExtJS之EditorGridPanel afteredit属性

    转自:https://zccst.iteye.com/blog/1328869 1. 之前大多用Ext.grid.GridPanel,现在需要可编辑功能,发现比以前稍复杂一些. 就是需要对指定列进行可 ...

  10. Genuitec