首页 > 其他分享 >图论选做

图论选做

时间:2023-07-27 14:34:13浏览次数:33  
标签:二分 连边 图论 选做 复杂度 查集 基环树 考虑

P3465 [POI2008]CLO-Toll [基环树] [并查集] [提高+/省选-]

考虑依照题意,只要有一个环并且图连通,就能满足每个点在一些边定向后,都有为1的入度。

即选择一些边构成一个外向基环树,就可以满足题意

solution:

  • 先跑出一棵生成树
  • 找一条非树边(这样就能找到一个环),并对这个环定向
  • 然后依次对其他点进行定向
P1640 [SCOI2010] 连续攻击游戏 [二分图匹配] [基环树] [提高+/省选-]

考虑第一眼看过去,有点像网络流里面的最小割,便有了以下思路1,2;

考虑后面回顾整理时和上面这道题有点像,便有了思路3;


solution1(网络流):

  • 考虑将一个属性拆成两个点,一个装备的两个属性连边(连双向边),源点\(~S~\)向所有左部点,所有右部点向汇点\(~T~\)连边
  • 然后跑网络流,\(~S~\)出流的顺序是从\(~1\sim n~\)的左部点,如果\(~S~\)连向第\(~i~\)个点的边没有流,那么答案为\(~i-1~\)

时间复杂度:\(O(200\times N)\)

solution2(二分图匹配):

  • 考虑建图类上:将一个属性拆成两个点,一个装备的两个属性连边(连双向边)
  • 然后从左部点的\(~1~\)号点开始match,一直到不能找到增广路为止

时间复杂度: \(O(10000\times N)\) (好像可能会炸,但是真的能过耶,而且还跑得挺快的,最长122ms)

solution3(基环树):

  • 实际上可以是装备为边,不用拆点然后建图
  • 然后我们可以知道,和上面这道题一样,都是边的定向问题,一个联通块内,只要有环就都可以选。没有环就舍去最大的那个

时间复杂度: \(O(N + 10000)\)

P1525 [NOIP2010 提高组] 关押罪犯 [二分答案] [并查集] [普及+/提高]

考虑最大值最小(这么典的提示为什么一开始没看到呢!可能是题目的迷惑性确实很强,也可能是太久没做二分图的题了)

solution:

  • 二分答案
  • 考虑把所有的\(~\leq mid(二分值)~\)的边连上(其实可以不用真的连),然后并查集维护联通块个数,\(~\leq2~\)合法,否则不合法,最后取最小的合法答案即可。

标签:二分,连边,图论,选做,复杂度,查集,基环树,考虑
From: https://www.cnblogs.com/rickylin/p/17584825.html

相关文章

  • 7.26 day3图论
    战绩:100+100+90+25=315rk2(如果T3不挂10分就rk1了)T1正解用的是状态之间建边跑bfs,赛时我没想到状态之间建边,糊了个费用流,同样能过,思路也很简单,直接网格之间建费用为1流量无限的边,在控制点和解密点限制一下流量即可T2二分答案+最小生成树检验注意可能爆longlong要边加边判......
  • 图论中的实用定理与结论
    结合图论中的概念与定义食用更佳。网络流与二分图Konig定理:最小点覆盖=最大匹配(proof)二分图最大独立集=点数-最大匹配二分图最大团=补图的最大独立集最大流=最小割二分图最小链覆盖数=最小边覆盖=节点数-最大匹配数有孤立点的二分图没有边覆盖Hall定......
  • 7.20 图论笔记
    T1题目•在\(N\)个点\(P\)条边的加权无向图上求出一条从\(1\)号结点到\(N\)号结点的路径,使路径上第\(K+1\)大的边权尽量小。•\(0≤K<N≤1000\),\(1≤P≤2000\)。Solution•一道自己做出来的蓝。•二分第\(K+1\)大边权为\(mid\),每次把边权......
  • 7.19 图论
    最小生成树[PA2014]Kuglarz\[[a,b)+[b,c)=[a,c)\]由此转化为n+1个点,只要两个点联通,就能知道有没有球,转化为最小生成树问题[国家集训队]TreeI考虑给白边加一个权重c,二分c,白边的数量因为c的变化而变化,最终一定有一种情况选了need条边,注意在边权相等时先选择白边思路题CF70......
  • 集训游记 7.19-7.20 图论
    最小生成树MSTP5994[PA2014]Kuglarz考虑连边\(i,j\)表示花费代价知道区间\([i,j)\)的奇偶性.容易发现\(i,j\)联通就可以发现表示出\([i,j)\).考虑最终局面,一定要推出每个\([i,i+1)\)的奇偶性.要求每对\([i,i+1)\)联通.即整张图联通.最小生成树k条白边最小生成树......
  • 近期 AtCoder Beginner Contest 题目选做
    AtCoderBeginnerContest310Ehttps://atcoder.jp/contests/abc310/tasks/abc310_e我们要求所有区间的NAND之和,发现NAND最后只可能是\(0\)或\(1\),所以我们只需要计数区间NAND为\(1\)的即可。考虑dp,设\(f_{i,0/1}\)表示以\(i\)结尾的区间最后NAND和为\(0/......
  • 搜索和图论_复习
    DFSAcWing842.排列数字代码#include<bits/stdc++.h>usingnamespacestd;typedefpair<int,int>PII;constintN=10;intpath[N];boolst[N];intn;voiddfs(intx){if(x>n)return;for(inti=1;i<=n;i++){if(st[i]==1)continu......
  • 图论入门
    图论入门符号与定义基础定义:重边:端点和方向(有向图)完全相同的边称为重边。example:1212自环:自己连接自己的边称为自环。example:1111相邻相关:出边&入边从\(u\)出发的边称为\(u\)的出边;到达\(u\)的边称为\(u\)的入边。出度&入度从\(......
  • 重生之我是图论
    djstl:遍历到的点的ans一定是从小到大的   实际应用:修改建图,魔改算法之类次小生成树:最小生成树+枚举剩余边+树上倍增查max笛卡尔树:最大值所管辖的区间,看到“max{}”“对 排序”时可能会选择使用。bfs一般使用前提,边权全部相同dfs找欧拉路径记得倒叙输出(先继续dfs在输......
  • atcoder绿题选做
    ABC305:E  https://atcoder.jp/contests/abc305/tasks/abc305_e题意:给定一个无向图,给定k个守卫,每个守卫有h[i]的耐力值,如果是一个在图中是被保护的要满足和守卫的距离至少为h[i],让你升序打印所有被守卫的点解题思路:可以从守卫出发,看守卫在可以走的情况下最远走到哪,最后统计......