BZOJ 3000: Big Number|斯特林公式
2016-02-23 19:44
323 查看
答案显然Ans=⌊logn!logk⌋+1
斯特林公式(不是加特林n!≈2πn−−−√∗(ne)n
对于小范围的数暴力计算,大范围的数直接取近似就行啦
精度问题很玄学……
斯特林公式(不是加特林n!≈2πn−−−√∗(ne)n
对于小范围的数暴力计算,大范围的数直接取近似就行啦
精度问题很玄学……
#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<queue> #include<vector> #include<set> #include<map> #include<algorithm> #include<iostream> #define N 220050 #define M 4000001 #define e exp(1.0) #define pi acos(-1.0) using namespace std; int sc() { int i=0,f=1; char c=getchar(); while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar(); return i*f; } int n,k; int main() { while(~scanf("%d%d",&n,&k)) { double x=0; if(n<=100) { for(int i=2;i<=n;i++) x+=log(i); x/=log(k); printf("%lld\n",(long long)floor(x)+1ll); } else { x=log(2*pi*n)/log(k)/2+n*log(n/e)/log(k); printf("%lld\n",(long long)floor(x)+1ll); } } return 0; }
相关文章推荐
- C语言printf怎么折行
- U3D学习网址
- HDU1094A+B for Input-Output Practice (VI)(入门题,C,Java两个版本)
- H5的能力
- Js以分隔符分隔数组中的元素并转换为字符串
- [LeetCode]297. Serialize and Deserialize Binary Tree
- maven中引用本地jar包
- Java设计模式——工厂方法和抽象工厂方法
- New Activity探索(二):BasicActivity
- apache整合tomcat部署集群
- NFS 下载失败
- 169. Majority Element
- 机器学习中常用矩阵求导公式
- 实战练习 P85---变量X是奇数还是偶数
- Caffe下python环境的编译和使用draw_net.py绘制lenet网络结构图
- java 自动化测试小功能集锦
- Canopy v. 1.5.5 ubuntu安装流程
- #android# android和api level对应
- 岁月划过生命线——大三上
- Mecanim动画系统学习笔记