2 条题解
-
0
特别考虑一下m是1的情况,其他的暴力枚举即可,复杂度是log的,想要再高效一点就用log去算要几次,但是我懒得算。 赛时记得能过就行,但是平常练习记得考虑考虑怎么写,以防比赛真要你写
#include<bits/stdc++.h> using namespace std; void sol(){ long long n, m; cin >> n >> m; if(m == 1 || m >= n) cout << 1 << endl; else{ long long t = m; int res = 1; while(t * m < n) t *= m, res ++; if(n - t > t * m - n) res ++; cout << res << endl; } } int main(){ int t; cin >> t; while(t --) sol(); return 0; }
信息
- ID
- 159
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 125
- 已通过
- 17
- 上传者