题意是存在两个操作,一个是a/b,另外一个是b+1,找到最小的操作次数使得a=0
这个很明显是一个贪心思想,第二个操作很明显执行多了是不划算的,所以我考虑减少第二次操作的次数(很明显1e9以内任何一个数除以10最多就是9次)。然后再执行第一次操做,看那个数次数少一些。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,char> PII;
#define fel(i,x,y) for(int i=x;i<=y;i++)
#define fhl(i,x,y) for(int i=x;i>=y;i--)
#define pb push_back
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define inf 0x3fffffff
#define endl "\n"
#define ll long long
int a,b;
void slove(){
cin>>a>>b;
int flag=0;
if(b>a){
cout<<1<<endl;
return;
}
if(b==a){
cout<<2<<endl;
return;
}
if(b==1){
b=2;
flag=1;
}
int ans=inf;
for(int i=b;i<=b+10;i++){
for(int j=1;pow(i,j)<=1e9;j++){
if(pow(i*1.0,j)<=a&&pow(i*1.0,j+1)>a){