题解 P2759 【奇怪的函数】

Shikita

2019-03-05 16:07:20

Solution

题意:找到一个最小正整数$x$,使得 $x^x>=10^{n-1}$ 根据题意,我们只需要解出$x^x>=10^{n-1}$这个不等式组就可以了 $x^x>=10^{n-1} \Rightarrow lgx^x>=n-1 \Rightarrow xlgx>=n-1$ 即我们只需要计算出$xlog_x$的最小值 我们可以二分答案,即可计算出x的最小正整数解 时间复杂度$O(log(n))$ Code: ``` #include<bits/stdc++.h> #define int long long using namespace std; int n; inline bool check(int mid) { int len=mid*log10(1.0*mid)+1; return len<n; } signed main() { scanf("%lld",&n); int l=1,r=2e9; while(l<r) { int mid=(l+r)>>1; (check(mid))?l=mid+1:r=mid; } printf("%lld\n",l); } ```