$50$ 分求调
查看原帖
$50$ 分求调
1145420
longyitongxue楼主2025/6/1 21:06

记录在此

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
string sze(unsigned long long num){
    string ans="";
    while(num){
        ans=char(num%2+'0')+ans;
        num/=2;
    }
    return ans;
}
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        unsigned long long a,b;
        scanf("%llu%llu",&a,&b);
        if(a==b){
            puts("Yes");
            continue;
        }else if(a==0){
            puts("No");
            continue;
        }else if(b==0){
            puts("Yes");
            continue;
        }else if(b>a&&b%2){
            puts("No");
            continue;
        }
        string ae=sze(a),be=sze(b);
        while(be[be.size()-1]=='0'&&be.size()>1)be.erase(be.size()-1);
        if(ae.size()<be.size()){
            puts("No");
            continue;
        }
        bool flag=0;
        for(int i=0;i<be.size();i++){
            if(ae[i]!=be[i]){
                flag=1;
                break;
            }
        }
        if(flag){
            puts("No");
        }else{
            puts("Yes");
        }
    }
    return 0;
}
2025/6/1 21:06
加载中...