zoukankan      html  css  js  c++  java
  • [CF1483A] Basic Diplomacy

    [CF1483A] Basic Diplomacy - 构造

    Description

    (n) 个朋友和 (m) 天假期,每天他会选一个朋友和他一起玩团队游戏。而每天只有特定的朋友能和他玩。如果一个朋友被选了 (leftlceildfrac{m}{2} ight ceil) 次,别的朋友就会吃醋。问是否存在一种方案使得没有朋友吃醋。

    Solution

    扫两轮,同时记录每个人的使用次数

    第一轮只定下所有只能选一个人的天

    第二轮定剩下的,每次随便找一个还有剩余使用次数的人

    如果无解,那么一定是在第一轮中超标,第二轮中不可能导致超标,因为不可能有两个人同时超标的情况出现

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    void solve()
    {
        int n, m;
        cin >> n >> m;
        vector<vector<int>> g(m + 2);
        for (int i = 1; i <= m; i++)
        {
            int siz;
            cin >> siz;
            for (int j = 0; j < siz; j++)
            {
                int x;
                cin >> x;
                g[i].push_back(x);
            }
        }
        vector<int> seq(m + 2), cnt(n + 2);
        for (int i = 1; i <= m; i++)
        {
            if (g[i].size() == 1)
            {
                seq[i] = g[i][0];
                cnt[seq[i]]++;
                if (cnt[seq[i]] > (m + 1) / 2)
                {
                    cout << "NO" << endl;
                    return;
                }
            }
        }
        for (int i = 1; i <= m; i++)
        {
            if (seq[i])
                continue;
            int now = 0;
            for (int j = 0; j < g[i].size(); j++)
            {
                now = g[i][j];
                if (cnt[now] >= (m + 1) / 2)
                    continue;
                break;
            }
            seq[i] = now;
            cnt[now]++;
        }
        cout << "YES" << endl;
        for (int i = 1; i <= m; i++)
            cout << seq[i] << " ";
        cout << endl;
    }
    
    signed main()
    {
        int t;
        cin >> t;
    
        while (t--)
        {
            solve();
        }
    }
    
  • 相关阅读:
    Mesos以及Marathon安装总结
    Mesos的quorum配置引发的问题
    chronoy & NTP
    /boot下面文件说明
    jquery插件
    不错的源码演示:admin5源码
    dos中执行cd命令切换不到对应的盘解决方法
    ThinkPHP重写规则优化URL及Rewrite规则详细说明
    PHP实现MySQL数据导出为EXCEL(CSV格式)
    php中常用$_SERVER的用法
  • 原文地址:https://www.cnblogs.com/mollnn/p/14565199.html
Copyright © 2011-2022 走看看