0
点赞
收藏
分享

微信扫一扫

Codeforces 134 B

他说Python 2022-07-15 阅读 93


​​传送门​​

题目大意

假设我们有一对数字。我们可以在一步中从给定的对中得到一个新的对
让最初的一对数字是。你的任务是找到数字,也就是说,将转换成至少一个数字等于的一对所需的最少步数。

思路


反向遍历,当KaTeX parse error: Expected 'EOF', got '&' at position 5: a==1&̲&b==1时,此时的步数就是从走到的步数,然后求出一个最小值就是答案。

代码

int n;
int min1=inf;
void dfs(int a,int b,int step){
if(a<1||b<1||step>=min1) return ;
if(a==1&&b==1) min1=min(min1,step);
if(a-b>0) dfs(a-b,b,step+1);
if(b-a>0) dfs(a,b-a,step+1);
}

int main(){
cin>>n;
for(int i=1;i<=n;i++){
dfs(i,n,0);
}
printf("%d\n",min1);
}


举报

相关推荐

0 条评论