[题解](prufer)明明的烦恼
https://www.cnblogs.com/noip/archive/2013/03/10/2952520.html
以及高精(抄
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std; int n,cnt,d[],sum,tot;
struct bigint{
int num[],len;
bigint(){
memset(num,,sizeof(num));
len=;
}
bigint operator*(const int &rhs)const{
bigint ans;
ans.len=len+;
for(int i=;i<=len;i++)ans.num[i]+=num[i]*rhs;
for(int i=;i<ans.len;i++)
if(ans.num[i]>){
ans.num[i+]+=ans.num[i]/;
ans.num[i]%=;
}
while(!ans.num[--ans.len]);
return ans;
}
bigint operator/(const int &rhs)const{
bigint ans=*this;
ans.len++;
for(int i=ans.len;i;i--){
ans.num[i-]+=ans.num[i]%rhs*;
ans.num[i]/=rhs;
}
while(!ans.num[--ans.len]);
return ans;
}
}ans;
signed main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&d[i]);
if(!d[i]){
printf("");return ;
}
if(d[i]!=-){
sum+=d[i]-;
cnt++;
}
}
if(sum>*n-){
printf("");return ;
}
ans.num[]=;
for(int i=n--sum;i<n-;i++)
ans=ans*i;
for(int i=;i<=n--sum;i++)
ans=ans*(n-cnt);
for(int i=;i<=n;i++){
for(int j=;j<=d[i]-;j++)
ans=ans/j;
}
for(int i=ans.len;i;i--)
printf("%d",ans.num[i]);
}
[题解](prufer)明明的烦恼的更多相关文章
- bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3432 Solved: 1295[Submit][Stat ...
- 【BZOJ1005】[HNOI2008]明明的烦恼(prufer序列)
[BZOJ1005][HNOI2008]明明的烦恼(prufer序列) 题面 BZOJ 洛谷 题解 戳这里 #include<iostream> #include<cstdio> ...
- 【BZOJ1005/1211】[HNOI2008]明明的烦恼/[HNOI2004]树的计数 Prufer序列+高精度
[BZOJ1005][HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可 ...
- bzoj 1005 [HNOI2008] 明明的烦恼 (prufer编码)
[HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5907 Solved: 2305[Submit][Status][Di ...
- bzoj1005: [HNOI2008]明明的烦恼(prufer+高精度)
1005: [HNOI2008]明明的烦恼 题目:传送门 题解: 毒瘤题啊天~ 其实思考的过程还是比较简单的... 首先当然还是要了解好prufer序列的基本性质啦 那么和1211大体一致,主要还是利 ...
- [HNOI2008][bzoj 1005]明明的烦恼(prufer序列)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7121 Solved: 2816[Submit][Stat ...
- bzoj 1005: [HNOI2008]明明的烦恼 prufer编号&&生成树计数
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2248 Solved: 898[Submit][Statu ...
- BZOJ 1005 [HNOI2008]明明的烦恼 (Prufer编码 + 组合数学 + 高精度)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5786 Solved: 2263[Submit][Stat ...
- BZOJ1005--[HNOI2008]明明的烦恼(树的prufer编码)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5768 Solved: 2253[Submit][Stat ...
- [HNOI2008]明明的烦恼(prufer序列,高精度,质因数分解)
prufer序列 定义 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2. 描述 eg 将 ...
随机推荐
- 算法(Algorithms)第4版 练习 1.3.8
方法实现: //1.3.8 package com.qiusongde; import java.util.Iterator; import java.util.NoSuchElementExcept ...
- iOS开发数据库-FMDB
前言 FMDB是以OC的方式封装了SQLite的C语言API,使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码:对比苹果自带的Core Data框架,更加轻量级和灵活:提供了多线程安全的数据库操 ...
- BZOJ 1600 [Usaco2008 Oct]建造栅栏:dp【前缀和优化】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1600 题意: 给你一个长度为n的木板,让你把这个木板切割成四段(长度为整数),并且要求这四 ...
- python处理时间汇总
1.将字符串的时间转换为时间戳 方法: a = "2013-10-10 23:40:00" 将其转换为时间数组 import time timeArray = time.strpt ...
- HihoCoder1654: XY游戏([Offer收割]编程练习赛39)(好久没写搜索)(已经超级简短了)
描述 如下图所示,在4x4的棋盘上有X和Y两种棋子各若干枚:O表示空格. OXXY YOOX XOOY XOXX 小Hi每次可以选择任意一枚棋子,将它移动到上下左右相邻的空格中. 小Hi想知道最少移动 ...
- 洛谷 P2285 [HNOI2004]打鼹鼠
题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...
- BZOJ1500:[NOI2005]维修数列
浅谈\(splay\):https://www.cnblogs.com/AKMer/p/9979592.html 浅谈\(fhq\)_\(treap\):https://www.cnblogs.com ...
- 深入理解和探究Java类加载机制
深入理解和探究Java类加载机制---- 1.java.lang.ClassLoader类介绍 java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字 ...
- jquery中对于批量deferred的处理
此代码仿照jquery源码中$.when()的实现 function test(i) { var dfd = $.Deferred(); if(i%2 == 0) { console.log(&quo ...
- React-Redux之API
connect([mapStateToProps], [mapDispatchToProps], [mergeProps],[options]) 连接 React 组件与 Redux store. 连 ...