Codeforces1485 A.加算と除算(列挙)

題名:

ここに画像の説明を挿入

解決:

明らかに、最初に操作2を実行し、次に操作1を実行します。b= 2の場合、答えはlog 2(a)に関するものなので、2の直接操作の数(log 2(a)に列挙するだけで済みます)を計算します。操作の総数。答えを更新すると、明らかに最初に操作2を実行してから、操作1を実行できます。\\ b = 2の場合、答えはlog2(a)に関するものなので、直接操作の数は2( log2(a))に列挙するだけで済みます。\\次に、操作の総数を計算し、回答を更新します。 重要なのは、その後最初の供給ラインが動作するための2さらに供給ライン操作のための1 bの場合=2テキスト次いでL O G 2 Aはと右以下のため、このダイレクトボンディング操作のための2二次のみ必要なためピースが移動するL O G 2 A 次にカウントはセカンダリ番号として動作する合計を計算ましたもっと新しいAのケース利用可能

コード:

#include <bits/stdc++.h>
#define int long long
using namespace std;


void solve(){
    
    
    int a,b;cin>>a>>b;
    int ans=1e9;
    for(int i=0;i<=1e3;i++){
    
    
        int bb=b+i;
        if(bb==1)continue;
        int aa=a;
        int temp=0;
        while(aa){
    
    
            aa/=bb;
            temp++;
        }
        ans=min(ans,temp+i);
    }
    cout<<ans<<endl;
}
signed main(){
    
    
    int T;cin>>T;
    while(T--){
    
    
        solve();
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/weixin_44178736/article/details/114055576