使得 x^*** 達到或超過 n 位數字的最小正整數 x 是多少?
輸入格式:
乙個正整數 n
輸出格式:
使得 x^*** 達到 n 位數字的最小正整數 x
輸入樣例#1:
複製
11
輸出樣例#1:
複製
10
n<=2000000000
比較套路,首先轉化一下題面,我們需要找到乙個最小的$x$,使得
$x^x > 10^n$
兩邊同時取$log$
$xlog_x > n - 1$
由於log函式有單調性,因此可以二分$x$
#include#include#include
#include
#include
#define int long long
using
namespace
std;
const
int maxn = 4 * 1e5 + 10, mod = 100003
;inline
intread()
while(c >= '
0' && c <= '
9') x = x * 10 + c - '
0', c =getchar();
return x *f;
}main()
cout
<}
洛谷P2759 奇怪的函式
使得 x x 達到或超過 n 位數字的最小正整數 x 是多少?輸入格式 乙個正整數 n 輸出格式 使得 x x 達到 n 位數字的最小正整數 x 輸入樣例 1 11輸出樣例 1 10n 2000000000 換底公式 相當於解不等式x x 10 n 1 兩邊取常用對數 x log10 x n 1 左...
P2759 奇怪的函式 題解
csdn同步 原題鏈結 前置知識 二分,對數。簡要題意 求 x x 的位數超過或達到 n 位的最小的 x n leq 2 times 10 9 首先,x x 與 x 是正比例關係,具有單調性。樸素來說就是 x x 隨 x 增大而增大,主要因為 x 1 答案不可能是 1 啊 具有單調性的函式可以進行二...
LuoguP2759 奇怪的函式
使得 x x 達到或超過 n 位數字的最小正整數 x 是多少?這道題並沒有想出來,太丟臉了 首先注意到題目要求位數超過n位數字 考慮如何求位數,我們發現對於數n的位數就是log10 n 1 換到這道題裡就是求log10 x x 1 n的最小值的x 於是就是x log10 x 1 n的最小x值,二分即...