原题链接:https://www.cometoj.com/contest/59/problems
A 完全k叉树题意:给定一个结点树为n的完全k叉树,问树中距离最远的两点。 题解:先找树中深度最高的点,再找和上一个点不在同一个子树上的点,两点深度加起来为答案。
#include
using namespace std;
#define ll long long
const int maxn=100010;
ll n,k;
ll quickpow(ll x,ll p)
{
ll ans=1;
while(p){
if(p&1) ans=ans*x;
x=x*x;
p>>=1;
}
return ans;
}
ll geth()
{
ll ans=n*(k-1)+1;
ll h=log(1.0*ans)/log(1.0*k);
if(quickpow(k,h)-1
关注
打赏
热门博文