zoukankan      html  css  js  c++  java
  • SRM 600 div 2 T 2

    题意:给你50个数,问你最少去掉多少数能使得剩下的数不可能具备子集S,OR起来为goal

    如果一个数不是goal的子状态,那么我们没必要删除他,所以我们只关心goal的子状态的数

    1:如果所有的数OR起来都没有到达goal,那么就是0

    2:每个数都会贡献一些位,去掉1的个数最少的那一位就好了

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

    class ORSolitaireDiv2
    {
    public:
    int getMinimum(vector <int>, int);
    };
    int ORSolitaireDiv2::getMinimum(vector <int> numbers, int goal)
    {
        int ans = 33, cnt = 0;
        bool f[33];
        memset(f,false,sizeof(f));
        for (int i = 0; i < 33; i ++)
            if (!(goal & (1 << i))){
                for (int j = 0; j < numbers.size(); j ++)
                    if (numbers[j] & (1 << i))
                        f[j] = true;
            }
        for (int i = 0; i < 33; i ++)
            if (goal & (1 << i)){
                cnt = 0;
                for (int j = 0; j < numbers.size(); j ++)
                    if ((numbers[j] & (1 << i)) && !f[j])
                        cnt ++;
                ans = min(ans, cnt);
            }
    cnt = 0;
    for(int i = 0;i < numbers.size(); i++)
    if (f[i])
                cnt ++;
    ans = min((int)numbers.size() - cnt, ans);
    return ans;
    }
  • 相关阅读:
    Asp.net web api部署在某些服务器上老是404
    log4net记录日志到数据库自定义字段
    PIE-Basic 投影变换
    PIE-Basic 波段合成
    PIE-Basic 空间量测
    PIE-Basic 存储格式转换
    PIE-Basic 位深转换
    PIE-Basic 数据拉伸与显示
    PIE-Basic数据信息查看
    PIE-Basic 影像格式转换
  • 原文地址:https://www.cnblogs.com/wjnclln/p/9558686.html
Copyright © 2011-2022 走看看