P2624 [HNOI2008]明明的烦恼
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; typedef long long LL; inline int read()
{
char c=getchar();int num=;bool f=;
for(;!isdigit(c);c=getchar())
f=c=='-'?:f;
for(;isdigit(c);c=getchar())
num=num*+c-'';
return f?num:-num;
} const int N=1e4+; int n,m;
int d[N],tot; int prime[N],cnt;
bool flag[N];
void init()
{
for(int i=,t;i<N;++i)
{
if(!flag[i])
prime[++cnt]=i;
for(int j=;j<=cnt&&(t=i*prime[j])<N;++j)
{
flag[t]=;
if(i%prime[j]==)
break;
}
}
} inline LL ksm(LL x,LL k)
{
LL res=;
while(k)
{
if(k&)
res=res*x;
x*=x;
k>>=;
}
return res;
} int num[N]; inline void chai(int x,int f)
{
for(int i=;i<=cnt&&x>;++i)
{
while(x%prime[i]==)
{
num[i]+=f;
x/=prime[i];
}
}
return;
} int ans[N],l,x;
inline void mul(int *a)
{
x=;
ans[]=l=;
for(int i=;i<=cnt;++i)
{
for(int j=;j<=a[i];++j)
{
for(int k=;k<=l;++k)
{
ans[k]=ans[k]*prime[i]+x;
x=ans[k]/;
ans[k]%=;
}
while(x)
{
ans[++l]=x%,
x/=;
}
}
}
} int main()
{
// freopen("3.in","r",stdin);
// freopen("466.out","w",stdout);
init();
n=read();
if(n==)
{
n=read();
if(n)
putchar('');
else
putchar('');
return ;
}
for(int i=;i<=n;++i)
{
d[i]=read();
if(d[i]==)
{
puts("");
return ;
}
if(d[i]==-)
++m;
else
{
tot+=(d[i]-=);
for(int j=;j<=d[i];++j)
chai(j,-);
}
}
if(tot>n-)
{
puts("");
return ;
}
for(int i=;i<=n--tot;++i)
chai(i,-);
for(int i=;i<=n-;++i)
chai(i,);
if(m>)
{
for(int i=;i<=n--tot;++i)
chai(m,);
}
mul(num);
for(;l;--l)
cout<<ans[l];
return ;
}
P2624 [HNOI2008]明明的烦恼的更多相关文章
- Luogu P2624 [HNOI2008]明明的烦恼 Prufer+组合+高精
好的我把标准版过了... 设$ r_i$为$i$的度数 首先,我们设 $ sum = \Sigma r_i-1$,$ tot $ 为所有能够确定度数的点 所以我们有 $ C ^ {sum} _{n-2 ...
- BZOJ 1005 [HNOI2008] 明明的烦恼(组合数学 Purfer Sequence)
题目大意 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为 1 到 N 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 N( ...
- bzoj1005 [HNOI2008]明明的烦恼
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3032 Solved: 1209 Description ...
- 【bzoj1005】[HNOI2008]明明的烦恼
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4175 Solved: 1660[Submit][Stat ...
- BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数
1005: [HNOI2008]明明的烦恼 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- bzoj 1005: [HNOI2008]明明的烦恼 prufer编号&&生成树计数
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2248 Solved: 898[Submit][Statu ...
- BZOJ 1005: [HNOI2008]明明的烦恼( 组合数学 + 高精度 )
首先要知道一种prufer数列的东西...一个prufer数列和一颗树对应..然后树上一个点的度数-1是这个点在prufer数列中出现次数..这样就转成一个排列组合的问题了.算个可重集的排列数和组合数 ...
- 【BZOJ1005】[HNOI2008]明明的烦恼(prufer序列)
[BZOJ1005][HNOI2008]明明的烦恼(prufer序列) 题面 BZOJ 洛谷 题解 戳这里 #include<iostream> #include<cstdio> ...
- 【BZOJ 1005】 1005: [HNOI2008]明明的烦恼 (prufer数列+高精度)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4981 Solved: 1941 Description ...
随机推荐
- 倾斜动画(SkewTransform)
Silverlight中的倾斜变化动画(SkewTransform)能够实现对象元素的水平.垂直方向的倾斜变化动画效果.我们现实生活中的倾斜变化效果是非常常见的,比如翻书的纸张效果,关门开门的时候门缝 ...
- vscode入门使用教程(页面调试)
初次使用vscode时各种不适应,所有需要用到的功能貌似都需要单独安装插件才能用.这让很多初次使用vscode的朋友有点无所适从. 下面本人就带各位朋友学习下如何使用vscode来进行最基本的工作—— ...
- Spring-Cloud之Config配置中心-7
一.我们前面基本上都是讲解的Spring Cloud Netflix的组件,下面我们会重点说Spring Cloud Config分布式配置中心.为什么需要这个组件来管理配置呢?在分布式应用开发过程中 ...
- 2019 斗鱼java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.斗鱼等公司offer,岗位是Java后端开发,因为发展原因最终选择去了斗鱼,入职一年时间了,之前面试了很多家公 ...
- Tornado + Bootstrap 快速搭建自己的web应用
前言 最近用 python tordado 框架, 整了一个模板页面, 用于接入与发布数据的展示, tornado 简单易用, bootstrap 比较流行, 用起来也省事, 配合起来做些小案例非常迅 ...
- 【Python】模块和包
模块 模块的概念 1. 每一个以扩展名 `py` 结尾的 `Python` 源代码文件都是一个 模块 2. 模块名 同样也是一个 标识符,需要符合标识符的命名规则 3. 在模块中定义的 全局变量 .函 ...
- golang静态编译
golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库. 这样可以任意部署到各种运行环境,不用担心依赖库的版本问题.只是体积大一点而已,存储时占用了一点磁盘,运行 ...
- The Instruction Set In Cortex-M3
The Cortex-M3 supports the Thumb-2 instruction set. This is one of the most important features of th ...
- git remote 命令的用法
查看关联的远程仓库信息 # 查看关联的远程仓库的名称 git remote # 查看关联的远程仓库的详细信息 git remote -v 添加远程仓库的关联 远程仓库的名称一般默认为 ...
- OpenGL学习(2)—— 创建第一个窗口
创建 GLFW GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口.它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入,这正是我们需要的. #inclu ...