2 条题解

  • -1
    @ 2025-2-15 20:25:44

    MX-X7—T1题解

    解题方法

    a可以×2(无线)

    b可以+1或-1(微调)

    所以要在最短步骤内让a=b,就要让b=最近的a*(2的次方(包括0次方))

    Code

    #include <bits/stdc++.h>
    
    using namespace std;
    
    long long a,b,ans=999999999,i=1;
    
    int main(){
    	cin>>a>>b;
    	ans=min(abs(b-a),abs(2*a-b)+1);
    	for(long long x=0;pow(2,x-1)*a<=b;x++){
    		ans=min(abs((i*a)-b)+x,ans);
    		i=i*2;
    	}
    	cout<<ans;
    	return 0;
    }
    

    信息

    ID
    102
    时间
    3000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    744
    已通过
    147
    上传者