zoukankan      html  css  js  c++  java
  • codeforces 1220D

    首先奇数和偶数不能撞到一起。
    然后我们可以全拿奇数,因为每次都是0连1,1连0,肯定没有奇环。
    考虑一个合法的全拿偶数的情况,我们可以把它全除以二变成等价的问题。

    #include <bits/stdc++.h>
    #define pii pair<int,int>
    using namespace std;
    typedef long long ll;
    typedef double db;
    const int N = 2e5+5;
    int n;ll a[N];
    vector<ll> v;
    int ans[70];
    int main(){
        ios::sync_with_stdio(false);
        cin>>n;v.resize(n);
        for(int i=0;i<n;i++)cin>>v[i];
        for(int i=0;i<n;i++){
            ll p = v[i];int cnt=0;
            while (p%2==0)p /= 2, cnt++;
            a[i]=cnt;
            ans[cnt]++;
        }
        int mx = *max_element(ans,ans+70);
        cout<<n-mx<<endl;
        for(int i=0;i<=66;i++){
            if(ans[i]==mx){
                for(int j=0;j<n;j++){
                    if(a[j]!=i)cout<<v[j]<<' ';
                }
                return 0;
            }
        }
    }
    
  • 相关阅读:
    C#基础
    进制转换
    养猪和存储空间
    独热码和二进制码
    mux_xz
    饮料机
    亚稳态
    mos管功耗
    功能覆盖率和代码覆盖率
    时序逻辑电路输出特点
  • 原文地址:https://www.cnblogs.com/MXang/p/11618354.html
Copyright © 2011-2022 走看看