这题做的我欲哭无泪啊……

我已经没心情多说啥了……

高精度T啊!我太弱啊!改了一天啊!还不如滚粗啊!

想好式子在写啊!

能用高精度乘单精度就不要用高精度乘高精度啊!

    能用高精度除单精度就不要用高精度除高精度啊!

T成翔啊!

简单的组合计数问题啊!

题解在这里=_= : http://www.cnblogs.com/zhj5chengfeng/archive/2013/08/23/3278557.html

上代码:

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#define N 1100
using namespace std; class bignum
{
public:
int l;
int num[N*];
bignum(int nownum)
{
memset(num, , sizeof(num)); l = ;
if (nownum == ) l = ;
else while (nownum)
{
num[++l] = nownum % ;
nownum /= ;
}
}
void jia(int y);
void chu(int y);
void cheng(int y);
void print();
};
int n, d[N], sum = ; void bignum::jia (int y)
{
num[] += y; int d = num[] / ; int i = ;
while (d)
{
num[++i] = d;
d = num[i] / ;
num[i] %= ;
}
if (i > l) l = i;
} void bignum::cheng (int y)
{
for (int i = ; i <= l; ++i)
num[i] = num[i] * y;
int d = ;
for (int i = ; i <= l; ++i)
{
num[i] += d;
d = num[i] / ;
num[i] %= ;
}
while (d)
{
num[++l] = d;
d = num[l] / ;
num[l] %= ;
}
while (l > && num[l] == ) l--;
} void bignum::chu (int y)
{
int yu = ;
for (int i = l; i >= ; --i)
{
yu = yu* + num[i];
num[i] = yu / y;
yu %= y;
}
while (l > && num[l] == ) l --;
} void bignum::print()
{
int d = ;
for (int i = ; i <= l; ++i)
{
num[i] += d;
d = num[i] / ;
num[i] %= ;
}
while (d) { num[++l] += d; d = num[l] / ; num[l] %= ; }
for (int i = l; i >= ; --i) printf("%d", num[i]);
printf("\n"); return;
} int main()
{
scanf("%d", &n); int fre = ;
for (int i = ; i <= n; ++i)
{
scanf("%d", &d[i]);
if (d[i] != -) { fre++; sum += d[i]-; }
}
if (sum > n-)
{
printf("0\n");
return ;
}
bignum ans = ;
for (int i = n--sum; i <= n-; ++i) ans.cheng(i);
for (int i = ; i <= n-sum-; ++i) ans.cheng(n-fre);
for (int i = ; i <= n; ++i)
if (d[i] > )
for (int j = ; j < d[i]; ++j) ans.chu(j);
ans.print();
return ;
}

bzoj 1005 HNOI2008 明明的烦恼的更多相关文章

  1. BZOJ 1005 [HNOI2008] 明明的烦恼(组合数学 Purfer Sequence)

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

  2. BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数

    1005: [HNOI2008]明明的烦恼 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

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

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

  4. BZOJ 1005: [HNOI2008]明明的烦恼( 组合数学 + 高精度 )

    首先要知道一种prufer数列的东西...一个prufer数列和一颗树对应..然后树上一个点的度数-1是这个点在prufer数列中出现次数..这样就转成一个排列组合的问题了.算个可重集的排列数和组合数 ...

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

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

  6. BZOJ 1005 [HNOI2008]明明的烦恼 purfer序列,排列组合

    1005: [HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少 ...

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

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

  8. BZOJ 1005: [HNOI2008]明明的烦恼(prufer数列)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1005 题意: Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标 ...

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

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

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

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

随机推荐

  1. epoll使用具体解释(精髓)

    epoll - I/O event notification facility 在linux的网络编程中,非常长的时间都在使用select来做事件触发.在linux新的内核中,有了一种替换它的机制,就 ...

  2. android 退出整个程序

    上网学了好多方法,关于Android的Activity如何退出.好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂. 使用单例模式创建一个Activity管理对象,该对象中有一个 ...

  3. 也谈OpenFlow, SDN, NFV

    Copyright (2014) 郭龙仓. All Rights Reserved. OpenFlow 传统的网络环境中,仅仅有路由器/交换机之间的接口/协议是标准化的,可是在网络设备内部,数据平面和 ...

  4. Flex4之元数据标签使用

    Flex 元数据标签 1.[ArrayElementType] 使用ArrayElementType元数据标签可以让你定义数组元素的数据类型. 程序代码: [ArrayElementType(&quo ...

  5. C++之运算符重载(2)

    上一节主要讲解了C++里运算符重载函数,在看了单目运算符(++)重载的示例后,也许有些朋友会问这样的问题.++自增运算符在C或C++中既可以放在操作数之前,也可以放在操作数之后,但是前置和后置的作用又 ...

  6. Android快速开发框架ZBLibrary源码分享

    坐标标准库ZBLibrary,是一个MVP架构的Android快速开发框架,提供一套开发标准(UI,Data,Listener)以及模板和工具类并规范代码. 封装层级少,简单高效兼容性好.Androi ...

  7. 转:艾瑞咨询2016 IM云的发展趋势

    转自: http://www.cnblogs.com/lingyunhu/p/rtc63.html

  8. C# 委托的几种写法

    class Program    {         delegate string Get(string ss);        delegate string Get2(int i);       ...

  9. C#/.NET使用HttpWebRequest、SqlBulkCopy从API获取数据批量插入DB

    小弟新手程序员一枚,代码技术和文章水平均不才.所写文章均为对自己所写所学代码的简单记录,可能对于老手程序员营养价值不高,望莫见怪. 我工作上有个需求:从某处API接口上获取数据(大约1W条而已)并插入 ...

  10. Spring(3.2.3) - Beans(12): 属性占位符

    使用属性占位符可以将 Spring 配置文件中的部分元数据放在属性文件中设置,这样可以将相似的配置(如 JDBC 的参数配置)放在特定的属性文件中,如果只需要修改这部分配置,则无需修改 Spring ...