题目传送门:https://www.luogu.org/problemnew/show/P2759
题意:
求x^x的位数大于等于n的最小的数x。
思路:
再用一个二分即可(满足单调性)。
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
#define INF 2147483647ll
#define calc(x) ((x)*log10(x)+1)
using namespace std;
int n,ans;
int main()
{
scanf("%d",&n);
int l=0,r=n,mid;
while(l<=r)
{
mid=(l+r)/2;
if(calc(mid)>=n) r=mid-1,ans=mid; else l=mid+1;
}
printf("%d",ans);
}