题解:CF1491D Zookeeper and The Infinite Zoo
AstaVenti_ · · 题解
容易发现,如果
以下分析
我们试着手动构造出一些满足
到这里应该能发现一些规律。因为
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll T,u,v;
void solve(){
cin>>u>>v;
if(u>v){
cout<<"NO\n";
}else if(u==v){
cout<<"YES\n";
}else{
vector<ll>a,b;
while(u)a.push_back(u&1),u>>=1;
while(v)b.push_back(v&1),v>>=1;
a.resize(b.size());
ll s=0,t=0;
for(ll i=0;i<a.size();i++){
s+=a[i],t+=b[i];
if(t>s){
cout<<"NO\n";
return;
}
}
cout<<"YES\n";
}
}
int main(){
cin>>T;
while(T--){
solve();
}
}