BZOJ3000 Big Number
由Stirling公式:
$$n! \approx \sqrt{2 \pi n} (\frac{n}{e})^n$$
故:$$\begin{align} ans &= log_k n! + 1 \\ &\approx log_k [\sqrt{2 \pi n} (\frac{n}{e})^n] + 1 \\ &= \frac{1}{2} log_k 2 \pi n + n * (log_k n - log_k e) + 1\\ \end {align}$$
又$log_a b = \frac{log a}{log b}$
而且要注意n比较小的时候近似值差别比较大。。。可以直接暴力。。。
/**************************************************************
Problem: 3000
User: rausen
Language: C++
Result: Accepted
Time:28 ms
Memory:816 kb
****************************************************************/ #include <cstdio>
#include <cmath> using namespace std;
typedef long double Lf;
typedef long long ll;
const Lf pi = acos(-1.0);
const Lf e = exp();
const Lf eps = 1e-; int n, k;
Lf ans; Lf log(Lf x, Lf y) {
return log(x) / log(y);
} int main() {
int i;
while (scanf("%d%d", &n, &k) != EOF) {
if (n <= ) {
for (ans = 0.0, i = ; i <= n; ++i) ans += log(i);
ans /= log(k);
printf("%.0Lf\n", ceil(ans + eps));
} else
printf("%lld\n", (ll) (0.5 * log( * pi * n, k) + n * log(n, k) - n * log(e, k)) + );
}
}
BZOJ3000 Big Number的更多相关文章
- [BZOJ3000] Big Number (Stirling公式)
Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数——N,K Output 每行一个数为输出结果. Sample I ...
- [BZOJ3000]Big Number(斯特林公式)
求n!在k进制下的位数,n<=1e18 斯特林公式:$n!\approx \sqrt{2\pi n}(\frac{n}{e})^n$ 在n很大的时候有较好的精度保证. $\log_{k}n!+1 ...
- bzoj3000 Big Number 数论,斯特林公式
Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数——N,K Output 每行一个数为输出结果 Sample In ...
- 【bzoj3000】Big Number 数论
题目描述 给你两个整数N和K,要求你输出N!的K进制的位数. 输入 有多组输入数据,每组输入数据各一行,每行两个数——N,K 输出 每行一个数为输出结果. 样例输入 2 5 2 10 10 10 10 ...
- JavaScript Math和Number对象
目录 1. Math 对象:数学对象,提供对数据的数学计算.如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法. 2. Number 对象 :Js中提供数字的对象.包含整数.浮 ...
- Harmonic Number(调和级数+欧拉常数)
题意:求f(n)=1/1+1/2+1/3+1/4-1/n (1 ≤ n ≤ 108).,精确到10-8 (原题在文末) 知识点: 调和级数(即f(n))至今没有一个完全正确的公式, ...
- Java 特定规则排序-LeetCode 179 Largest Number
Given a list of non negative integers, arrange them such that they form the largest number. For exam ...
- Eclipse "Unable to install breakpoint due to missing line number attributes..."
Eclipse 无法找到 该 断点,原因是编译时,字节码改变了,导致eclipse无法读取对应的行了 1.ANT编译的class Eclipse不认,因为eclipse也会编译class.怎么让它们统 ...
- 移除HTML5 input在type="number"时的上下小箭头
/*移除HTML5 input在type="number"时的上下小箭头*/ input::-webkit-outer-spin-button, input::-webkit-in ...
随机推荐
- SQLServer控制用户访问权限表
连接地址:http://www.cnblogs.com/yxyht/archive/2013/03/22/2975880.html 一.需求 在管理数据库过程中,我们经常需要控制某个用户访问数据库的权 ...
- ASP.NET Core 使用 AutoFac 注入 DbContext
DI 1.0 -- 通过 RegisterInstance 注入 一开始,并不是很懂 AutoFac 的用法,又因为要使用特定的构造器和参数来初始化 DbContext,所以我想到的办法就是使用 Re ...
- 【转】C#使用ESC指令控制POS打印机打印小票
.前言 C#打印小票可以与普通打印机一样,调用PrintDocument实现.也可以发送标注你的ESC指令实现.由于 调用PrintDocument类时,无法操作使用串口或TCP/IP接口连接的pos ...
- google浏览器打开报出文件不可读解决方案
1.打开*.desktop文件 gedit ~/.local/share/applications/name.desktop 在文件中做改动: The .desktop file should loo ...
- Python3基础 访问列表指定索引值的元素
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- Usage: AddDimensionedImage imageFile outputFile eclipse 运行程序出错
关于这个在eclipse中运行java程序的错,首先确认你的jdk,jre是否完整,并且与你的eclipse的位数相同,当然我相信这个错误大家应该都会去检查到. 第二个关于addDimensioned ...
- centos7 docker activemq
/ cd /home/activemq// wget http://apache.fayea.com/activemq/5.13.3/apache-activemq-5.13.3-bin.tar.gz ...
- 两个平行div之间有间隙
两个平行的div使用 display: inline-block 会导致元素之间有空隙解决方法: 父元素设置 font-size: 0;
- window 配置wnmp(转下整理 ,全)
工具/原料 RunHiddenConsole.exe 下载地址:http://pan.baidu.com/share/link?shareid=100074&uk=822373947 方法 ...
- 115开jiang监控
ぁぁあ0ぁぁあ这里是返回值为1的时候下标2的值ぁぁあ