zoukankan      html  css  js  c++  java
  • Codeforces 1230D

    Description

    思路

    显然,如果一个团队所有人里面会的算法都不完全一样,那么肯定存在一个看不起所有人的人(会得最多或会得最偏)。因此一个团队至少有两个人会的算法一模一样(即a值一样)。同时,如果有一个人在一个团队,那么会的题和他相当或比他少(是他的子集)的人也可以加入这个团队。
    当然,团队人越多越好,这样b值和就越大。把所有会的算法完全一样的人提出来,再把是这群人的子集的人全部加入到一个团体。这就是答案团体。

    #include <bits/stdc++.h>
    using namespace std;
    #define endl '
    '
    typedef long long ll;
    const int N = 1e5 + 10;
     
    pair<ll, ll> num[N];
    set<ll> check;
    int vis[N];
     
    int main() {
        int n;
        cin >> n;
        for(int i = 1; i <= n; i++) {
            cin >> num[i].first;
        }
        for(int i = 1; i <= n; i++) {
            cin >> num[i].second;
        }
        sort(num + 1,  num + 1 + n);
        for(int i = 2; i <= n; i++) {
            if(num[i].first == num[i - 1].first) {
                vis[i] = vis[i - 1] = 1;
                check.insert(num[i].first);
            }
        }
        for(ll val : check) {
            for(int i = 1; i <= n; i++) {
                if(vis[i]) continue;
                if((val & num[i].first) == num[i].first) {
                    vis[i] = 1;
                }
            }
        }
        ll ans = 0;
        for(int i = 1; i <= n; i++) 
            if(vis[i]) ans += num[i].second;
        cout << ans << endl;
    }
    
  • 相关阅读:
    Nth Highest Salary
    第二高的薪水
    组合两个表
    牛客(66)机器人的运动范围
    牛客(65)矩阵中的路径
    牛客(64)滑动窗口的最大值
    牛客(63)数据流中的中位数
    牛客(62)二叉搜索树的第k个结点
    牛客(61)序列化二叉树
    mybits(2)增删改查
  • 原文地址:https://www.cnblogs.com/limil/p/12702149.html
Copyright © 2011-2022 走看看