把每个数替换成它在2上的指数,然后发现0只能和>=2的相邻,所以手玩一下就好啦。
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=1e5+5; int n,now,cnt[3]; int main(){ scanf("%d",&n); for(int i=1,j;i<=n;i++){ scanf("%d",&now),j=0; if(!(now&1)) now>>=1,j++; if(!(now&1)) now>>=1,j++; cnt[j]++; } if(cnt[2]>=cnt[0]||(!cnt[1]&&cnt[0]==cnt[2]+1)) puts("Yes"); else puts("No"); return 0; }