bzoj 1005 HNOI2008 明明的烦恼
这题做的我欲哭无泪啊……
我已经没心情多说啥了……
高精度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 明明的烦恼的更多相关文章
- BZOJ 1005 [HNOI2008] 明明的烦恼(组合数学 Purfer Sequence)
题目大意 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为 1 到 N 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 N( ...
- 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数列中出现次数..这样就转成一个排列组合的问题了.算个可重集的排列数和组合数 ...
- BZOJ 1005 [HNOI2008]明明的烦恼 (Prufer编码 + 组合数学 + 高精度)
1005: [HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5786 Solved: 2263[Submit][Stat ...
- BZOJ 1005 [HNOI2008]明明的烦恼 purfer序列,排列组合
1005: [HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少 ...
- bzoj 1005 [HNOI2008] 明明的烦恼 (prufer编码)
[HNOI2008]明明的烦恼 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5907 Solved: 2305[Submit][Status][Di ...
- BZOJ 1005: [HNOI2008]明明的烦恼(prufer数列)
http://www.lydsy.com/JudgeOnline/problem.php?id=1005 题意: Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标 ...
- BZOJ.1005.[HNOI2008]明明的烦恼(Prufer 高精 排列组合)
题目链接 若点数确定那么ans = (n-2)!/[(d1-1)!(d2-1)!...(dn-1)!] 现在把那些不确定的点一起考虑(假设有m个),它们在Prufer序列中总出现数就是left=n-2 ...
- BZOJ 1005 [HNOI2008]明明的烦恼 ★(Prufer数列)
题意 N个点,有些点有度数限制,问这些点可以构成几棵不同的树. 思路 [Prufer数列] Prufer数列是无根树的一种数列.在组合数学中,Prufer数列是由一个对于顶点标过号的树转化来的数列,点 ...
随机推荐
- utf-8 和gbk编码的差别
UTF- 8: 是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码. GBK 是国家标准GB2312基础上扩容后兼容GB2312的标准. GBK的文 ...
- Java语言与C++语言的差异总结
Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...
- Ruby on Rails Tutorial 第一章 之 Heroku部署
1.目的:用Heroku将开发环境部署到生产环境中.Heroku专门用于部署Rails和其他Web应用,部署Rails应用的过程非常简单——只要源码纳入Git版本控制系统就好. 2.搭建Heroku部 ...
- Python学习 之 文件
1.文件读写 python进行文件读写的函数是open或file file_handler=open(filename,,mode) (1)打开并读取文件 方式一:open() fo=open('/r ...
- PHP.7-HTML+CSS(一)-HTML语法、常用字符实体、颜色代码
HTML+CSS HTML是WEB页面的描述性语言,浏览器解释的语言 CSS则是为HTML制定样式的机制,为浏览器解释的语言.它不能独立使用,没有HTML就没有CSS,定义网页的外观和布局(字体.背景 ...
- shell判断一个变量是否为空
判断一个变量是否为空 . 1. 变量通过" "引号引起来 如下所示:,可以得到结果为 IS NULL. #!/bin/sh para1= if [ ! -n "$para ...
- Codeforces Round #190 (Div. 2) 水果俩水题
后天考试,今天做题,我真佩服自己... 这次又只A俩水题... orz各路神犇... 话说这次模拟题挺多... 半个多小时把前面俩水题做完,然后卡C,和往常一样,题目看懂做不出来... A: 算是模拟 ...
- 关于Winform发布时,资源文件缺失的解决方案
今天和大家分享一下,我这几天一直困惑的问题,今天不经意间解决了这个问题,接下来描述一下这个问题: 问题: 最近公司给人家做二次开发,是C/S结构的,我在做Winform时发现,当我选择一个项目发布时, ...
- 关于java.lang.NullPointerException: Module 'null' not found.的问题
在用eclipse做struts1项目时,配置都ok了.可是一运行就报java.lang.NullPointerException: Module 'null' not found.错. 代码如下: ...
- Jquery中bind和live的区别
Jquery中绑定事件有三种方法:以click事件为例 (1)target.click(function(){}); (2)target.bind("click",function ...