首页 > 其他分享 >2022 ICPC合肥 G Game Plan

2022 ICPC合肥 G Game Plan

时间:2022-11-21 00:24:11浏览次数:40  
标签:int top tp Game Plan 2022 query include mp

Game Plan

思维 && 环

考虑每个数字都作为一个点,每行同时出现就建一条双向边,形成若干个连通块

如果一个连通块是一颗树,则有该连通块中有个点必然取不到,直接贪心取最大值取不到即可

如果存在一个环,则该连通块中所有点都可以取到

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <map>
#include <array>
#include <vector>
using namespace std;
const int maxn = 2e6 + 10;
int top[maxn];

int query(int x)
{
    return x == top[x] ? x : top[x] = query(top[x]);
}

int main()
{
    int n, m;
    cin >> n >> m;
    vector<array<int, 2>>num(m);
    for(int i=0; i<=2*m; i++) top[i] = i;
    int tp = 0;
    map<int, int>mp;
    vector<int>siz(2 * m + 1, 0), gsiz(2 * m + 1, 0), maxx(2 * m + 1, 0);
    vector<int>minn(2 * m + 1), to(2 * m + 1);
    for(int i=0; i<m; i++)
    {
        int a, b;
        cin >> a >> b;
        num[i] = {a, b};
        if(mp.count(a) == 0) {mp[a] = ++tp; to[tp] = a;}
        if(mp.count(b) == 0) {mp[b] = ++tp; to[tp] = b;}
        int aa = query(mp[a]), bb = query(mp[b]);
        if(aa != bb) top[aa] = bb;
    }
    for(auto [x, y] : num)
    {
        gsiz[query(mp[x])]++;
    }
    for(int i=1; i<=tp; i++)
    {
        siz[query(i)]++;
        maxx[query(i)] = max(maxx[query(i)], to[i]);
    }
    int ans = n + 1;
    for(int i=1; i<=n+1; i++) if(mp.count(i) == 0) {ans = i; break;}
    for(int i=1; i<=tp; i++)
    {
        if(i != query(i)) continue;
        if(gsiz[i] + 1 != siz[i]) continue;
        ans = min(ans, maxx[i]);
    }
    cout << ans << endl;
    return 0;
}

标签:int,top,tp,Game,Plan,2022,query,include,mp
From: https://www.cnblogs.com/dgsvygd/p/16910118.html

相关文章

  • 2022-11-20
    1.图文并茂解释开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别? bsd、mit、apache属于开放许可,可以自定义修改源码、选择闭源。但是要披露原作者。GPL、Mo......
  • 2022 ICPC合肥 M Mahjong
    Mahjong爆搜先搜索出所有胡牌的情况,然后根据胡牌的情况,随便丢掉一张牌,则肯定是听牌状态然后枚举所有的听牌状态,计算其听牌集合,存起来即可#include<iostream>#include......
  • 2022.11.20:ICPC合肥 打星
    打星\(5\)题铜昨天打了\(vp\)了一场威海铁,打着打着甚至还睡着了,没想到今天过题嘎嘎猛,不过是抱着打星的心态乱交题的来着开场一看标题,一眼\(A\)题签到题,我直接上机......
  • 2022 ICPC合肥 B Genshin Impact
    ProblemB.GenshinImpact概率考虑一段\(y\)中,被燃烧的时间段及其概率只需要计算会影响到这一段的射箭点燃火的概率即可也就是这一段\(y\)开头的那次射箭,以及上次......
  • Wust Java Club 2022-2023上半学年中期考核
    WustJavaClub2022-2023上半学年中期考核前言提交时的注意事项不可写入包名,如packageedu.wust必须有且只能有一个公有类publicclassMain,若有其他类,不应给其赋为......
  • 2022-2023-1 20221422 《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.......
  • 2022-2023-1 20221302《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于那个班级 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求  https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12作业目标......
  • 2022-2023—1 20221306《计算机基础与程序设计》第十二周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11作业目标:学习《C语言程序设计》......
  • 2022-11-20 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • NET7+c#11 2022.11.8日发布,新功能介绍
    c#11新功能原始字符串泛型特性net7新功能:use+add+required速率限制中间件:令牌桶固定窗口:2/s并发限制器用户限流的限制器:爬虫.NETMinimalAPI:没有控制器没有filte......