图论
文章平均质量分 91
图论
Stockholm_Sun
这个作者很懒,什么都没留下…
展开
-
NOIP2012 普及组 T4 文化之旅
文化之旅(NOIP2012 普及组 T4 )题目描述有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家)。不同的国家可能有相同的文化。不同文化的国家对其他文化的看法不同,有些文化会排斥外来文化(即如果他学习了某种文化,则他不能到达排斥这种文化的其他国家)。现给定各个国家间的地理关系,各个国家的文化,每原创 2017-05-01 16:34:39 · 1344 阅读 · 0 评论 -
消息扩散(Tarjan算法缩点处理)
P2002 消息扩散 题目概述 给定一张有向图,不保证无自环与重边,信息从某几个节点出发,沿单向路传播,现在给出n个节点及其之间的道路,问至少需要在几个节点发布信息才能让这所有节点都得到信息。 数据规模:n≤100000,m≤500000 时空限制:1s,256M 思路: 利用缩点的思想,先预处理一下所有的强连通分量,然后把每个强连通分量内的所有节点看做一个节点,然后处理一张新图,O(M原创 2017-08-11 10:33:10 · 2367 阅读 · 0 评论 -
关于对Tarjan算法的思考与尝试
Tarjan–关于对Tarjan算法的思考与尝试接下来(超级)详细的解释一下代码吧!全局变量部分的解释int i,j,n,m;bool b[1001];int color[1001],colorn;int stack[1001],top;//数组模拟栈 int s,e,temp,index;int dfn[1001],low[1001];int head[1001];struct da原创 2017-07-14 11:13:52 · 438 阅读 · 0 评论 -
刻录光盘(Tarjan算法求强连通分量)
题目概述 给定N个人和一些人与人之间的关系(u,v),表示u愿意借给v光盘,那么对于存在的(u,v)(v,w)表示u愿意借给v光盘,v愿意借给w光盘,同时u愿意借给w光盘。求最少要用多少光盘才会让这N个人全部能够借到光盘。 数据规模 2<=N<=200 思路 这个题我认为比较难想的就是Tarjan强联通分量缩点,然后变成一个有向无环图,求入度为0的点的个数,然后输出即可。注意这个题存在诡异原创 2017-08-25 08:05:28 · 361 阅读 · 0 评论 -
路径统计(最短路计数)
(改编自Luogu P1608) 题目概述: 给定一张有向图,求从1到n的最短路径长度,以及有多少条不同的路径满足最短路径长度,不保证没有重边,保证没有自环。 数据规模: 1<=N<=2000,0<=E<=N*(N-1), 1<=C<=10. 思路: 求一遍SPFA,对于重边的处理是,对于属性完全相同的边算作一条,对于起终点相同,而权值不同的边,就取边权较小的那一条边,然后就是在SPFA原创 2017-08-16 08:19:42 · 2636 阅读 · 0 评论 -
[USACO15DEC]最大流Max Flow
Luogu P3128 [USACO15DEC]最大流Max Flow 题目概述: 给定一棵有N个节点的树,接下来有K个操作Order(U,V),使得U和V间的道路上的所有节点(包括U和V)权值都加1,求操作后树上节点权值的最大值。 数据规模: 2≤N≤50,000,1≤K≤100,000) 思路: LCA+前缀和,先DFS遍历树,再用倍增实现LCA,对于每次操作Order(U,V),将原创 2017-08-16 08:32:12 · 619 阅读 · 0 评论 -
[USACO06NOV] 路障 Roadblocks(次短路)
[USACO06NOV]路障Roadblocks (来自Luogu) 题目描述贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友。贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样,选择最短路。 贝茜所在的乡村有R(1<=R<=100,000)条双向道路,每条路都联结了所有的N(1<=N<=5000)个农场中的某两个。贝茜居原创 2017-08-23 15:30:24 · 445 阅读 · 0 评论 -
山上的国度(图论相关)
山上的国度P1394 题目描述有一个神秘的小国坐落在南方的青山之上,只有当黄昏时,落日耀眼的余晖刺破薄雾的遮拦,有机缘者才可看到小山上面的n个美丽的村庄。传说这个古老的国家里有m条枢纽管道,每一条苍老的管道连接着两个村庄,千百年来为村民提供水源的流通。n个村庄里只有一个水库,从有水库的村庄通过这些枢纽管道向其它村庄提供水源。大家都明白水往低处流,所有村庄都能得到水库的供水。黄小明就是那个有机缘者原创 2017-10-21 11:50:21 · 553 阅读 · 0 评论 -
LCA Tarjan实现
Tarjan LCA以前认为Tarjan算法只是用来解强连通分量的算法,后来发现LCA也有一个Tarjan算法。 下面借一个树来了解一下算法思路。(树已经横向放置) 询问组: 11 9 10 8 6 7 1 5 2 3 这个算法最好亲手模拟一遍,然后就会感到茅塞顿开。 先从1节点开始DFS深度优先遍历(左节点优先)。 1->2->4->8->10。 发现10没有子节点,找所原创 2017-08-15 17:29:38 · 366 阅读 · 4 评论 -
匈牙利算法(二分图最大匹配)
距离NOIP2017还有7天,那么我们就准备一些模板来看看吧! 今天复习一下匈牙利算法! 值得一提的是,匈牙利算法求出的二分图最大匹配就是最小点覆盖。这样我们可以做一个“战略游戏”(Luogu P2016)的题目。 模板的具体解释见代码:(Luogu P3386)代码#include<iostream>#include<cstdio>#include<cstdlib>#include<c原创 2017-11-03 17:04:02 · 666 阅读 · 0 评论 -
[HAOI2016]食物链
[HAOI2016]食物链 (来自Luogu) 题目概述: 现在给你n个物种和m条能量流动关系,求其中的食物链条数。 注意单独的一种孤立生物不算一条食物链。 数据规模: 全部输入数据在int范围内,N<=100000,M<=200000 思路: DP(记忆化搜索)的一道题目,有点不理解为啥是省选题目,然后几点需要强调的,首先单独的一种孤立生物不算一条食物链,这就是说,就算是某一个点入原创 2017-08-18 09:59:07 · 1834 阅读 · 0 评论 -
[HAOI2006]受欢迎的牛(Tarjan+并查集)
P2341 [HAOI2006]受欢迎的牛 题目概述:给定一张有向图,求从任何节点出发都可以抵达的节点个数。 数据规模:N<=10000,M<=50000 思路:Tarjan算法预处理强连通分量,缩点处理,然后得到一张新图,且这张图为有向无环图,然后利用并查集查找从任何节点出发都可以抵达的节点个数即可,用一个数组查询父亲节点为i的个数,但是要注意unionn的操作时,fa[xx]=fy,而不是原创 2017-08-11 14:10:57 · 360 阅读 · 0 评论 -
[POI2005]SKA-Piggy Banks
[POI2005]SKA-Piggy Banks(Luogu P3420)English ProblemByteazar the Dragon has NN piggy banks. Each piggy bank can either be opened with its corresponding key or smashed. Byteazar has put the keys in some翻译 2017-11-04 16:26:36 · 446 阅读 · 0 评论 -
最短路计数(Shortest Path Count)
By Stockholm最短路计数(Shortest Path Count)来源:Luogu P1144 题目描述 给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1~N。问从 顶点 1 开始,到其他每个点的最短路有几条。 输入输出格式 输入格式: 输入第一行包含 2 个正整数 N,M,为图的顶点数与边数。 接下来 M 行,每行两个正整数 x, y,表示有一条顶点 x 连向顶点原创 2017-05-07 11:47:40 · 517 阅读 · 0 评论 -
并查集(Union-Find Set)模板
By Stockholm并查集(Union-Find Set)模板题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入输出格式 输入格式: 第一行包含两个整数 N、M,表示共有 N 个元素和 M 个操作。 接下来 M 行,每行包含三个整数 Zi、Xi、Yi 当 Zi=1 时,将 Xi 与 Yi 所在的集合合并 当 Zi=2 时,输出 Xi 与 Yi 是否在同一集合内,是的原创 2017-05-07 11:49:08 · 708 阅读 · 0 评论 -
SPFA入门
SPFA今天看看SPFA。 至于SPFA的来历,在此我不再赘述,详情查询百度百科。 这一次我们借一个单源最短路的题来看看SPFA,这次只讲朴素SPFA,不讲SLF与LLL: (摘自Luogu模板)题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。 输入输出格式输入格式: 第一行包含三个整数N、M、S,分别表示点的个数、有向边的个数、出发点的编号。 接下来M行每行原创 2017-04-15 15:21:43 · 2374 阅读 · 0 评论 -
请柬(双向SPFA及SLF LLL优化法模板题)
请柬(双向SPFA模板题)(题目来源:Luogu.org) P1342 请柬 难度 普及+/提高 时空限制 1s / 128MB题目描述在电视时代,没有多少人观看戏剧表演。Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片。他们已经打印请帖和所有必要的信息和计划。许多学生被雇来分发这些请柬。每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天原创 2017-04-09 11:49:45 · 1931 阅读 · 0 评论 -
Heat Wave(热浪)附超大数据
Heat Wave(热浪)来源:USACO2009 October题目描述The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for good eating but are not so adept at creating creamy delicious dairy pr原创 2017-04-08 20:44:42 · 1795 阅读 · 0 评论 -
USACO 08 JAN 电话线Telephone Lines(二分法在图论题中的应用)
电话线Telephone LinesUSACO08JAN(From:Luogu P1948)题目描述Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncooperative, so he needs to pay for some of the cables原创 2017-07-19 11:40:34 · 480 阅读 · 0 评论 -
[JSOI2008]星球大战(并查集)
[JSOI2008]星球大战题目概述: 给定一张无向图,接下来按一定顺序删除节点及与它相连的边,包括(第一次删除前)每次都要求输出图上的连通块个数。 数据规模: N<=400000,M<=200000 思路: 这个题经过刚才概述简化后,其实思路比较明显了,因为是按一定顺序删边和点,所以首先是逆序建边点的思想,然后就是每次用一个并查集来记录当前所有点所属的连通块(集合)。别忘了把开始时的情况原创 2017-08-16 11:12:10 · 284 阅读 · 0 评论 -
差分约束系统
差分约束系统山东省聊城第一中学 孙玉泰(Stockholm_Sun)绪言在我学习差分约束系统的时候,网络上的blog并不能很好的给我一个思路,这说明讲解这个系统绝非易事,那么接下来的讲解将较多的借鉴百度百科的资料,结合自己的思想来讲解,然后希望大家能坚持读完这些,因为这些都是我自认为比较通俗的,毕竟OI是一个比较艰辛的道路,大家一起努力吧。预备定义差分又名差分函数或差分运算,差分的结果反映了离散量之原创 2017-08-17 11:23:40 · 456 阅读 · 0 评论 -
[USACO16OPEN]Closing the Farm_Silver(联通分量+逆向边处理+并查集)
P3144[USACO16OPEN]关闭农场Closing the Farm_Silver 题目概述:给定一张图,按照一定的顺序取消节点,当然,与该节点相连接的边也被取消,要求在每一次操作后,输出未被取消的节点是否联通(“YES”OR”NO”)。 数据规模:1<=N<=3000,1<=M<=3000 思路: 既然是一步步的删边,对于并查集的删边操作,显然不容易实现,所以这个题很自然的思路就是原创 2017-08-10 11:32:46 · 408 阅读 · 0 评论 -
P1195 口袋的天空(并查集+Kruskal)
P1195 口袋的天空 题目概述:给定一张含有N个节点,M条边的图,将图中的节点通过边连为K个部分,边权即为连接边上的两断电所需要的代价,如果能够满足题意,求最小总代价,反之输出“No Answer”。 数据范围:1<=N<=1000,1<=M<=10000,1<=K<=10,0<=L<10000 思路:Kruskal+并查集,边界为连接边数t==n-k时结束算法。 代码:#include<原创 2017-08-10 17:50:28 · 398 阅读 · 0 评论 -
选课(动态规划与DFS在多叉树中的应用)
选课(来源:Luogu P2014) 题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?输入输出格式输原创 2017-07-17 11:10:13 · 802 阅读 · 0 评论 -
Mzc和体委的争夺战(Dijkstra算法的思考与尝试以及与SPFA算法的对比)
Mzc和体委的争夺战–(Dijkstra算法的思考与尝试以及与SPFA算法的对比)(来源:Luogu)题目描述mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道)。但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁。mzc很生气,决定与其决斗,但cat的体力确实有些不稳定,所以他需要你来帮他计算一下最短需要的时间。输入输出格式输入格式: 第一行有两个数n,m,n原创 2017-07-14 15:53:34 · 352 阅读 · 0 评论 -
医院设置(多源最短路径--Floyd算法)
医院设置今天我们借这个题来复习一下Floyd,这是多源最短路径比较常用的方法。 (来源:Luogu) P1364 医院设置 题目描述设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为l。如上图中,若医院建在1 处,则距离和=4+12+2*20+2*40=136;原创 2017-07-14 15:33:43 · 1056 阅读 · 0 评论 -
邮递员送信(letter)
By Stockholm邮递员送信(letter)题目描述有一个邮递员要送东西,邮局在节点 1.他总共要送 N-1 样东西,其目的地分别是 2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 M 条道路,通过每条道路需要一定的时间。这个邮递员每次只能带一样东西。 求送完这 N-1 样东西并且最终回到邮局 最少需要多少时间。 输入输出格式 输入格式: 第一行包括两个整数 N 和原创 2017-05-07 11:50:43 · 732 阅读 · 0 评论 -
行路难(SPFA+前驱记录)
与其留恋,不如洒脱。 —NEMT2018后的首题祭行路难(SPFA+前驱记录)题目来自洛谷P2832,难度(提高+/省选-),自以为应该是(普及/提高-)的黄题。题目概述:给定一张有向图,在图上每进行一次移动,图的所有边权都会在原基础上+1,求算从1到N点的最小边权和,并输出这个最短路。思路:比较显然的一件事情是,这个是个图论的最短路问题,还要记录前驱。每次移动都需要在...原创 2018-08-01 10:42:41 · 339 阅读 · 0 评论