题解 P2759 【奇怪的函数】
Shikita
2019-03-05 16:07:20
题意:找到一个最小正整数$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);
}
```