
并查集 topo euler
文章平均质量分 78
kuangbin专题,绿了他(ac)
finish!!!!!
后期遇到更新
scau_sleep(今天写bug了吗?
1.一个退役acmer,老年选手
2. 今天喝水了吗?
3. 会写暴力~比不会写强~比不会写优秀
4.不会三分,喜提铁牌。
5. 失败一次不算什么,胸针为了拯救真由里 和 助手。重来3000多次都可以,那我失败几次,又算什么。(命运石之门)
-------如果说这是命运石之门的意志的话
展开
-
AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州
大意失荆州原创 2022-11-27 11:37:28 · 563 阅读 · 0 评论 -
Play on Words UVA - 10129(euler )
Play on Words UVA - 10129 题意:给你n个单词。现在要求你找到是否有一种组合,可以首尾相连。思路:容易想到用欧拉回路。把一个单词抽象成一条边。首尾字母分别是结点。本题是有向图,那么判断欧拉回路。有两个条件首先要保证图是连通的(不看边的方向)之后最多有两个奇点。AC#include <iostream>#include <cstdio>#include <cstring>#define mst(x,a) mem原创 2020-11-12 18:13:42 · 111 阅读 · 0 评论 -
欧拉回路的一个题集。。。。。我爱喝水,天天喝水
欧拉回路:图G的一个回路,若它恰通过图G中每一条边一次。有向图的:连通图(并查集 or dfs 判断)每个点的入度 = 出度。 or 其中有一个点的出度比入度大1,并且另一个点的入度比出度大1.无向图连通图。最多有两个奇点。欧拉道路:如果一个图只形成一个连通所有节点的链, 且每一点只走一次。除了起点和终点以外,其他点的度数(degree)应该是偶数。如果一个无向图是连通的,最多只有两个奇点,则一定存在欧拉道路。欧拉图:具有欧拉回路 / 欧拉道路的 图。eg 题部分。原创 2020-11-12 18:15:03 · 97 阅读 · 0 评论 -
The Necklace UVA - 10054(无向图的欧拉回路 euler)
The Necklace UVA - 10054题意:给你n个珠子,每个珠子有两种颜色。最多有50种颜色。问:现在要求你找到是否有一个项链,是相邻颜色相同的。思路:就是求一个欧拉回路。无向图,就先求下每个点的度数。欧拉回路的一个必要条件 是 每个点的degree为偶数。(本题要求是偶数,因为要连在一起)欧拉图的 另外一个必要条件是:连通图。反思:网上很多假算法,都没判断连通性。。。。。。AC#include <iostream>#include <cs原创 2020-11-11 19:03:51 · 110 阅读 · 0 评论 -
Window Pains POJ - 2585(topo排序&&建图,挺不错的一道题,有空补一下本题的拓展)
Window Pains POJ - 2585题意:给你9种窗口。输入是一个窗口,问:这种窗口是否存在?思路:由于窗口会覆盖,所以可以简单得想到:最上面的窗口的优先级最低(所以想到topo排序)难点在于建图。由于窗口的可能性只有9种,所以可以以这9种为基准,去连边对于第一种窗口,假如里面有格子被其他窗口覆盖那么就连link【1】【k】。(这里的k==4,表示1号窗口被4号窗口覆盖)且in【k】++。(topo’的基本操作)反思:上述思路应该有一个很明显的 局原创 2020-10-13 15:42:56 · 127 阅读 · 0 评论 -
Drunk LightOJ - 1003(topo判环)
Drunk LightOJ - 1003题意:要你判环。思路:用topo排序。假如排序之后,结点数不够n个,那么就说明有环存在。AC#include <iostream>#include <map>#include <string>#include <vector>#include <queue>#define For(i,x,y) for(int i=(x); i<=(y); i++)using namespace原创 2020-10-13 10:34:18 · 142 阅读 · 0 评论 -
产生冠军 HDU - 2094(topo&&思维)
产生冠军 HDU - 2094 题意:给你一个图。要求你判断是否只会产生一个冠军。对于a->b->c->a(这种情况时,三者都不可能是冠军)思路:由于输入的是,字符,所以给字符标一个号就好(用map)之后用topo的思想,只能产生一个冠军,那么入度为0的点只可能有1个。AC#include <iostream>#include <map>#include <string>#include <vector>#def原创 2020-10-13 10:06:50 · 278 阅读 · 0 评论 -
Genealogical tree POJ - 2367(topo 大水题)
Genealogical tree POJ - 2367题意:进行topo的模板题。思路:入度为0的点先出。AC#include <iostream>#include <queue>#include <cstdio>#include <vector>#include <cstring>#define mst(x,a) memset(x,a,sizeof(x))#define For(i,x,y) for(int i=(x);原创 2020-10-13 09:45:31 · 117 阅读 · 0 评论 -
确定比赛名次 HDU - 1285(topo模板题)
确定比赛名次 HDU - 1285题意:给你m条边,要求你进行topo排序。思路:没当in【i】==0,即满足条件编号小的在前面,可以通过优先队列来维护(数据小当然也可以直接暴力)AC#include <iostream>#include <cstring>#include <queue>#include <vector>#define For(i,x,y) for(int i=(x); i<=(y); i++)using n原创 2020-10-13 09:22:03 · 112 阅读 · 0 评论 -
Ordering Tasks UVA - 10305(紫薯,拓扑水体存模板。。。)topo
Ordering Tasks UVA - 10305题意:给你一个图。要你进行topo排序。思路:每次从入度为0的点开始。(可以暂存在队列里)AC#include <iostream>#include <cstring>#include <vector>#include <queue>#define For(i,x,y) for(int i=(x); i<=(y); i++)using namespace std;const in原创 2020-10-12 19:04:42 · 106 阅读 · 0 评论 -
Codeforces Round #603 (Div. 2)ABCD题解 A数学 Bvis记录 C数学 D并查集
A题意:有三堆糖果分别为r,g,b。每天只可以吃两个,(且这两个糖果的口味必须不同)问:最多吃多少天?思路:(简单数学)把三种颜色,按数量排序。a<b<c.假如a+b<c那么只可能有(a+b)天。假如a+b>c,那么就(a+b+c)/2...原创 2020-09-06 14:48:50 · 128 阅读 · 0 评论 -
AtCoder Beginner Contest 177(ABCDE题解),这次E码歪了,4wa.
A - Don’t be late(转换为乘法)题意:问是否能在时间TTT内,到达终点,距离为DDD,速度为SSS.思路:简单的数学问题。在时间TTT内所能达到的最大距离d=Td=Td=T x SSS如果d>=Dd>=Dd>=D那么肯定可以按时到达。(转换为乘法,当然啦除法也行,不过有浮点误差)AC#include <iostream>using namespace std;int main(){ int d,t,s; cin>>原创 2020-08-30 17:01:06 · 192 阅读 · 0 评论 -
kaungbin专题十一 网络流HDU3081(Marriage match)(并查集维护+二分答案+网络流)
Marriage Match II HDU - 3081题意:有n个男生和n个女生,在玩过家家。每一轮都配对一对夫妻。限制:下一轮的配对时,两个男女在之前不能配对过。女生不会和quarrel过的人配对。女生只能和没有和朋友quarrel过的男生配对。思路:对于女生的朋友,用并查集维护。对于m里的每对,肯定没有quarrel的:g1和b1.把g1和g1的朋友都与b1连边。(边权为1)之后二分答案。mid为轮数。把源点和每个女生相连,边权为mid。把每个男生和汇点相原创 2020-07-29 21:36:35 · 189 阅读 · 0 评论 -
kuangbin带你飞]专题五 并查集(poj1984)(二维带权并查集)
I - Navigation Nightmare POJ - 1984思路:本题其实和普通的带权并查集一样。无非是多加了一个维度(x方向和y方向,直接带权并查集基本操作)。merge和find时对两个disx和disy操作即可。反思字符读入时,不能这样!!!因为会把空格读入,(除非:数字和字符是连在一起的)AC#include <iostream>...原创 2020-05-04 21:16:13 · 193 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集 zoj3261(反向并查集+map记录要摧毁边)
Connections in Galaxy War思路:反向操作,宇宙从无开始。先离线。由于要反向,可以map记录哪条边要被破坏.在读完数据后,把读入的边没被破坏的先建好,之后就开始反向操作,并做好记录。并查集里的merge(由于要B的能量要大于A的能量,所以每次操作时把能量大的作为祖先,如果能量相同,那么就小号作为祖先)之后开始反向询问,如果是destroy那么就建边,否则就询...原创 2020-05-04 02:48:10 · 203 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集---poj1308 (这里给了一种图的判环方法,自环和内环)
N - Is It A Tree? POJ - 1308 hdu那题题解,这里不做赘述反思无论有向图还是无向图,他们的判断方法都一样。(poj1308 和 hdu1272 一个中文一个英文)真就白给AC#include <iostream>#include <cstring>#include <cstdio>#define For(i,x...原创 2020-05-01 17:12:32 · 162 阅读 · 1 评论 -
[kuangbin带你飞]专题五 并查集(hdu1272 判环)
M - 小希的迷宫HDU - 1272题意:输入很多条边,要你判断这些边连成的迷宫不存在环。思路:自环的情况,当两个点如果他们的祖先相同,此时再将他们并在一起,会导致内环。特判:输入0 0 时要输出yes。AC( 3. 我考场时的代码):我当时想没有环,那么 边数+1= 点数。#include <iostream>#include <cstdio>...原创 2020-05-01 16:44:41 · 142 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集---poj1456(贪心+并查集 || 贪心加堆优化) &&& 计算智能恰水果
G - Supermarket POJ - 1456 题意:有n个选择,每次选择权重最大的(且这次选择不和之前的时间冲突,最优选择,就取它所能取得最大时间)思路:贪心,这里介绍两种贪心法。反思(并查集):把题目的每个时间点转化为一个节点。(此时不知道题目的最大时间,所以全部初始化为-1,find时也用-1判定)每次选了一个最优的,就把那个时间点的父亲变为A-1。算是把A这个时...原创 2020-05-01 15:02:03 · 177 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集(poj1417+dp并查集的应用)
poj1417题意:要你找出 divine 里的所有人思路:由题意得逻辑关系可以得出,当是no时,x和y是不同的。(只考察no即可)之后把可能是no时的两个人构成一个集合一轮输入后,有了很多个集合。看能不能把他们和成divine , 可输出1.AC#include <iostream>#include <cstring>#include &...原创 2020-05-01 00:48:43 · 196 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集 poj2912(种类并查集->带权并查集+暴力枚举)
K - RochambeauPOJ - 2912题意:叫你找出裁判,即一直变的人。其他方面类似“ 食物链POJ - 1182 ”(题外话:)一开始操作还是和食物链差不多,但是本题可能有多个裁判(impossible的情况)所以很难操作。一开始直接取判断,写了一大堆逻辑语句,白给了一天。后面看了题解:(mmp)n只有500,小的要命。直接暴力。思路(枚举)先枚举每个人都可...原创 2020-04-28 22:50:22 · 169 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集 Parity game(poj 1733)(离线+带权并查集模板)
Parity game(poj1733)题意:有以个串,每次给出【i,j】之间的1的个数,有m次询问,判断当前询问是否和之前的询问相冲突,冲突就break。思路:由于本题的区间范围有点大,所以要先离线。本每次输入的左右区间依次存入一个 数组 中。之后把重复的出现去掉unique(为了后面的二分查找)之后就是带权并查集的基本操作,本题的dis【】稍微改变一下,就可以了(本题e...原创 2020-04-28 16:13:47 · 216 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集---A Bug's Life(种类并查集---带权并查集)
A Bug’s Life(poj2492)vj传送门题意:有两个性别的虫子,问是否有(“a man is ketty”)同性恋。思路:转换为带权并查集。带权并查集的模板+mod。AC#include <iostream>#include <cstdio>#define For(i,x,y) for(register int i=(x); i<=...原创 2020-04-27 23:00:54 · 149 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集 poj 1182 食物链(种族并查集--》带权并查集)
食物链vj传送门题意:本题有三种种群,每个有吃与被吃的关系。思路:把种类并查集转换成带权并查集(+个mod种类数)反思scanf终究是你大爷。带权并查集就以B为爸爸吧,爸爸即bb。算路径时要dis【a】-dis【b】(本题是a吃b,所以a的dis应该大)具体题目具体分析吧AC#include <iostream>#include <cstdio&...原创 2020-04-27 22:28:45 · 162 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集---hdu--3038(带权并查集入门)
How Many Answers Are Wrong(HDU3038)vj题目地址转载自,(我这里只放了一道题,原博主放了几道题)题意:思路:1.由于有很多对点的关系,建立带权并查集2. 建立以左端点为子,右端点为祖先的带权并查集。3. 由图中可知,当[1,4]确定和[3,4]确定时,添加[1,3]就可能会发生logic错误了。1) 而从[1,2]很难转换到去求[1,4]-...原创 2020-04-25 21:42:05 · 287 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集[hdu1213] (并查集求连通快的数量)
C - How Many Tables(hdu1213)vj地址题意:有n个人有关系,他们参加生日会,问有多少桌(不认识的不坐在一起,除非他们有间接关系eg:a-b-c-d,a和d就是间接关系)思路:先并查集基本操作,之后看看总共有多少个节点的祖先是他本身,(即有多少个连通块)#include <iostream>#include <cstdio>#de...原创 2020-04-24 22:01:19 · 158 阅读 · 0 评论 -
[kuangbin带你飞]专题五 并查集--poj1611(模板题)
The Suspectsvj地址题意:本题的感染者,肯定是有0的连通块思路:先合并,之后再求出 find(0)----即找到0的祖先(0所在的连通块)fa=find(0);之后看fa这个连通快有多少个元素。反思:输入小心啊,没注意continue,3wa,qwq。并查集就常规来,别瞎搞。qwq。AC(模板)#include <iostream>#i...原创 2020-04-24 21:44:45 · 152 阅读 · 0 评论 -
【kuangbin并查集】+暴力合并
Wireless Network(poj2232)vj题目地址题意:本题是每次增加一个点(一台机器)。当两个点距离小于d就连通。之后会有询问(强制在线)做法添加点时,枚举其他已添加的点,计算是否连通。询问点时,看这两个点是否在一个连通快里。反思:本题由于是算距离,要用距离公式,但比较时要用double比较,会有浮点误差,1e-6.由于数据量不大,所以能用乘法便用乘...原创 2020-04-24 19:14:17 · 136 阅读 · 0 评论