http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 40483 Accepted Submission(s): 19774 Problem DescriptionIn many applications very large integ…
Description 求N!的位数 Input 输入第一行为一个正整数 n(1<=n<=25000). Output 输出 n!的位数. Sample Input 1020 Sample Output 2019 思路 求一个数的位数,我们只需要对其进行以10为底的对数运算.假设有个数是四位数,那么其介于1000-10000中间,log10(1000)-log10(10000),结果为3-4,取4..另外也可以通过斯特林公式求解.这就是说,对于足够大的整数n,这两个数互为近似值.更加精确地:或…
题意 输入一个整数X,求一个整数N,使得N!恰好大于$X^X$. Sol 考试的时候只会$O(n)$求$N!$的前缀和啊. 不过最后的结论挺好玩的 $n! \approx \sqrt{2 \pi n} (\frac{n}{e})^n$ 然后就可以$O(1)$算啦 /* */ #include<iostream> #include<cstdio> #include<cstring> #include<set> #include<algorithm>…
斯特灵公式 Wiki http://zh.wikipedia.org/wiki/斯特林公式 /** \brief hdu 1018 * * \param date 2014/7/24 * \param state AC * \return * */ #include <iostream> #include <fstream> #include <cmath> using namespace std; const double PI=3.1415926; int main…
题意 题目链接 Sol 这篇题解写的非常详细 首先要知道第二类斯特灵数的一个性质 \[m^n = \sum_{i = 0}^m C_{n}^i S(n, i) i!\] 证明可以考虑组合意义:\(m^n\)是把\(n\)个不同的球放到\(m\)个不同的盒子里的方案数 然后用这个式子展开\(i^k\),把组合数展开,会得到这样一个式子 \[\sum_{i=1}^n\frac{n!}{(n-i)!}\sum_{j=0}^i\frac{S(k,j)}{(i-j)!}\] 发现不是很好搞,但是考虑到当\…
http://zh.wikipedia.org/wiki/%E6%96%AF%E7%89%B9%E7%81%B5%E6%95%B0 第一类:n个元素分成k个非空循环排列(环)的方法总数 递推式:s(n+1,k)=s(n,k-1)+n*s(n,k) 解释:考虑第n+1个元素 1.单独形成循环排列,剩下的有s(n,k-1)种方法 2.和别的元素一起形成循环排列,n个元素形成循环排列的方法数是s(n,k),第n+1个可以放在第i个元 素左边,共有n种放法,一共是n*s(n,k) 代码: memset(…
山治的婚约 Description 我们知道,山治原来是地下有名的杀人家族文斯莫克家族的三子,目前山治的弟弟已经出现,叫做四治,大哥二哥就叫汪(One)治跟突(Two)治好了(跟本剧情无关) .山治知道自己跟夏洛特家族有婚约之时,决定参加大妈的茶会,跟父亲做个了断.然而夏洛特公主早已看穿了一切,她给山治出了个难题,如果山治能够解决难题,夏洛特公主就帮助山治解除婚约.公主安排了 N 只拿着蛋糕的猴子,排成一列,每只猴子都有自己的初始位置 Pi 和行动量 Di,山治从前往后夺取猴子的蛋糕,因为光谱踢…
题目: 利用队列实现对某一个数据序列的排序(采用基数排序),其中对数据序列的数据(第1和第2条进行说明)和队列的存储方式(第3条进行说明)有如下的要求: 1)当数据序列是整数类型的数据的时候,数据序列中每个数据的位数不要求等宽,比 如: 1.21.12.322.44.123.2312.765.56 2)当数据序列是字符串类型的数据的时候,数据序列中每个字符串都是等宽的,比 如: "abc","bde","fad","abd",…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42715    Accepted Submission(s): 20844 Problem Description In many applications very…
buzhidao Description 有一个长度为 n 的序列,第 i 个数的大小为 a[i].现在从第 1 个数开始从左往右进行以下操作:1. 如果当前数是剩下的数中最大的,则输出并删去这个数.2. 若不是,将它放到序列的末尾.现在,bg 想知道一开始的第 m(从 1 开始计数)个数第几次被输出 Input 第一行输入两个正整数 n(0<n<=1000).m(1=<m<=n). 接下去一行有 n 个正整数,第 i 个数表示 a[i]的值. Output 输出一个数,表示第 m…