樣例給出了一個3個點的徹底二叉樹,即第一層有一個點,第二層有兩個點。那麼能夠選擇第二層的兩個點來計算距離,其距離爲2,即爲樹上的最大距離。
模擬題,累加層數分類討論可AC
CODE;
#include<cstdio> #define ll long long using namespace std; int main() { int t; scanf("%d",&t); while(t--) { ll k,n; scanf("%lld%lld",&k,&n); if(k==1) { printf("%lld\n",n-1); continue; } ll temp=1,cnt=0; while(n) { n-=temp; cnt++; temp*=k; if(n<temp) break; } if(n==0) printf("%lld\n",cnt*2-2); else if(n<=temp/k) printf("%lld\n",cnt*2-1); else printf("%lld\n",cnt*2); } return 0; }