题解:P8046 [COCI2015-2016#4] CHEWBACCA
Malkin_Moonlight · · 题解
题意分析
给你
思路
其实就是把编号大的那个点进行操作。每次让他变成自己的父亲并且步数加一。直到他与编号小的那个点变为完全
代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
#define pb emplace_back
ll n,k,q,x,y,ans,i,j;
int main()
{
//freopen("xxx.in","r",stdin);
//freopen("xxx.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>k>>q;
for(i=1;i<=q;i++)
{
cin>>x>>y;
if(k==1)
{
cout<<abs(x-y)<<endl;
continue;
}
ans=0;
while(x!=y)
{
if(y>x) swap(x,y);
x=(x+k-2)/k;
ans++;
}
cout<<ans<<endl;
}
return 0;
}