SPOJ 5161 FACVSPOW
来源:互联网 发布:python 输出汉字乱码 编辑:程序博客网 时间:2024/06/05 14:58
Description
f(n)=n!,g(n)=a^n,求最小的n使得f(n) > g(n)
Input
第一行一整数T表示用例组数,每组用例输入一整数a(1<=T<=1e4,2<=a<=1e6)
Output
对于每组用例,输出最小的n使得f(n) > g(n)
Sample Input
3
2
3
4
Sample Output
4
7
9
Solution
二分答案,用斯特林公式代替n!,两边取对数判断即可
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 1111const double PI=acos(-1.0);bool check(int mid,int a){ double n=1.0*mid; if(n*log(n)-n+0.5*log(2.0*PI*n)>n*log(1.0*a))return 1; return 0;}int main(){ int T,a; scanf("%d",&T); while(T--) { scanf("%d",&a); int l=1,r=3e6,mid,ans; while(l<=r) { mid=(l+r)/2; if(check(mid,a))ans=mid,r=mid-1; else l=mid+1; } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- SPOJ 5161 FACVSPOW
- SPOJ FACVSPOW
- SPOJ FACVSPOW 数论+二分
- SPOJ FACVSPOW(数论+二分)
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- Service中使用Toast,及遇到的问题
- 方法、传参
- 蓝桥杯李白醉酒问题
- [LeetCode] 268. Missing Number
- android studio 导入volley
- SPOJ 5161 FACVSPOW
- 线程之间通过管道通信
- 我的大三暑期培训(七月)
- Mavlink协议概要
- ListView添加页尾功能实现
- Java多线程之synchronized关键字
- Android Studio 使用小技巧汇总
- path classpath java_name
- WebView与js交互,只能点击一次,在此回到WebView无法点击。