图论
十一号路口。
博客仅用于本人记录学习笔记!
展开
-
HDOJ5695 Gym Class ----- 拓扑排序
题目链接:https://vjudge.net/problem/HDU-5695题意:n个人排成一列,编号为1-N,每个人的分数=min(排他前面人的编号),给定m个排斥条件,即A不允许B排在A前面,求分数和的最大值。题解: 参考http://www.bubuko.com/infodetail-2686140.html?__cf_chl_jschl_tk__=19fab1c4836ffc040f59b2980b97dabaaaae90f9-1589790195-0-AUPfZTvphgafKWP..原创 2020-05-18 16:47:00 · 164 阅读 · 0 评论 -
HDOJ 3478 Catch ----- DFS
题目链接https://vjudge.net/problem/HDU-3478题意:给定一个图和起点,每分钟走1条边,不能休息,可以重复走边,问是否能在某个时刻时,无法判断现在在哪个店。题解:参考http://www.cppblog.com/Yuan/archive/2010/08/11/123005.html对于任意点,假设其单源最短路径长度为x,加入没有环,则只能在x+2k(k=0,1,2,3...)时刻到达该点,假设x是5,则时刻是5,7,9,11,不难想到,都是奇数,所以如果不考虑...原创 2020-05-17 20:54:03 · 144 阅读 · 0 评论 -
BZOJ1297 迷路 ----- 矩阵快速幂
题目链接:https://vjudge.net/problem/HYSBZ-1297/origin题意:给定一张图,每条路径有一个耗时,求从节点1到n有多少条路径,总耗时恰好为T题解:https://blog.csdn.net/Jaihk662/article/details/73936974?utm_source=blogxgwz7邻接矩阵中,若所有边长为1,Ai,j=1表示i到j有边,为0表示无边。则A的n次方,表示的是i到j路径长度为n的路径有多少。此题目中边长不一样,可以采用拆点..原创 2020-05-17 15:05:30 · 170 阅读 · 0 评论 -
UVALive 4452 The Ministers' Major Mess --- 2-SAT问题
原文链接http://www.bubuko.com/infodetail-1185933.html?__cf_chl_jschl_tk__=fe338f4b84387ae9c490e0e5810ec56a4ee4fa31-1584608202-0-AbtJYBtZ6x1AwYYT0O7PwsL_hWT3KEZaW4FAQQCecepwOam_JbTLw0rnND8U5NdbC0bc97ZLL3...转载 2020-03-19 17:12:56 · 164 阅读 · 0 评论 -
UVA 1395 & LALive 3887 Slim Span --- kruskal
题目链接https://vjudge.net/problem/UVA-1395参考https://www.cnblogs.com/20143605--pcx/p/4927478.html这道题是求【苗条生成树】,要求生成树最大边和最小边差值最小kruskal算法里面,将边按权值从小到大排序,最小的边e1加入后,相当于是一种贪心的思想,后面的边能要则要,这样就能让最大边权值尽量...原创 2020-03-06 15:26:11 · 243 阅读 · 0 评论 -
uvalive3415 Guardian Of Decency --- 匈牙利算法
题解:根据性别建立二分图,把可能相爱的异性匹配在一起,题目意思是找尽量多的点,使得其中任意2点之间没有边,即寻找二分图的最大独立集,最大独立集 = 点数 - 最大匹配数(最小点覆盖数),所以直接匈牙利算法找最大匹配数即可#include <cstdio>#include <cstring>#include <algorithm>#include ...原创 2019-10-29 14:25:27 · 167 阅读 · 0 评论 -
(转)感性理解二分图中最小顶点覆盖、最大独立集、最小边覆盖与最大匹配的关系
先说概念:1、最小顶点覆盖:用最少的点覆盖所有的边(只要边的一个端点被选取,即算“被覆盖”);2、最大独立集:不直接相连的点的最大个数;(注意:最大独立集是一个点集,其中的点两两不直接相连(独立集)、且在所有独立集中点数最多,但是我们一般只求其元素个数(即点数))3、最小边覆盖:用最少的边覆盖所有的点。由于二分图不存在孤立点(即无边相连的点),上述问题必定有解。举个例子...转载 2019-10-28 20:23:56 · 535 阅读 · 0 评论 -
uva11383 少林决胜 --- KM算法
题解:比较经典的做法,题目给的不等式row[i] + col[j] >= w[i][j]和二分图最佳完美匹配的很像,可以联想到KM算法, 把横纵坐标分别看作二分图的顶点,每个w(i,j)看作边权值,跑一遍匈牙利算法即可。(KM算法的过程实际是最大化边权和,最小化顶标和的过程)证明是最小化订标只需在最佳完美匹配的状态时,假设减少某点的订标引入新边,那么原来与此点连接的另外一点的订标也...原创 2019-10-25 19:49:18 · 204 阅读 · 0 评论 -
UVA11624 Fire --- BFS
两次BFS,第一次记录下每个点着火的时间,第二次BFS时直接和时间比较,如果在着火点之前到,则可以继续入栈。。注意push的同时更新used数组,忘记更新会造成tle#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#define MA...原创 2019-09-29 22:09:20 · 106 阅读 · 0 评论 -
UVA10047 The Monocycle --- BFS
最简单的BFS,只不过每个点带上颜色和方向即可,注意题目说的是左转和右转90°,转向的时候是原地不动#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#define MAXN 30using namespace std;#define N...原创 2019-09-30 11:04:42 · 98 阅读 · 0 评论 -
UVA10054 The Necklace --- 欧拉回路
书上的题解是将每个珠子的两半看成节点,建模成一个无向图判断欧拉回路。判断欧拉回路要求是联通图,每个节点度数为偶数即可,题目意思是联通图,所以判断度数即可,然后DFS逆序输出欧拉路径#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#de...原创 2019-10-01 10:11:49 · 122 阅读 · 0 评论 -
uvalive4255 Guess --- 拓扑排序
按白书的解法,区间和转前缀和,知道任意两个前缀和Si,Sj的相对大小关系,找出一组Si的解即可。大小关系转化成图,注意相等的两个Si。#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#define MAXN 1200using names...原创 2019-10-02 18:57:12 · 103 阅读 · 0 评论 -
UVALive3211 Now or later --- 2-SAT问题+二分答案
最小值最大的问题一般都是二分答案,着陆时间为【0,max】,则每次M=(L+R+1)>>1,来进行二分,M为时间间隔。这道题是图论里面比较经典的2-SAT问题,下面是白书上的2-SAT模板#include <cstdio>#include <cstring>#include <algorithm>#include <ve...原创 2019-10-05 20:38:41 · 124 阅读 · 0 评论 -
UVA11374 Airport Express --- dijstra
预处理单源最短路径,计算到s,e的最短路径d[s],d[e],然后枚举所有商务线,两点为u,v,边长cos,则走商务线最短路径是ds[s]+cos+de[e].. #include <cstdio> #include <cstring> #include <algorithm> #include <vector>...原创 2019-10-07 21:39:14 · 142 阅读 · 0 评论 -
UVA10917 Walk Through the Forest -- 迪界特斯拉
先dij算出每个点到目的点的最短距离d,对于AB边,要求d[B]<d[A]即可,然后记忆化搜索#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>using namespace std;t...原创 2019-10-08 17:51:05 · 108 阅读 · 0 评论 -
计蒜客--引爆炸弹 并查集
题目链接 https://www.jisuanke.com/course/709/36599题解:刚开始用的dp,然后有3组测试挂了,才发现用的dp考虑漏了一种情况。后来去网上才看到说要用并查集,这题并查集的思想就是把横纵坐标归一,以横坐标或者纵坐标(偏移后的)为数字进行并查集,具体思路看代码不难理解 #include <cstdio>#include ...原创 2019-02-04 11:31:00 · 649 阅读 · 0 评论 -
计蒜客-郊游 匈牙利算法
题目链接 https://www.jisuanke.com/course/709/36569 题解:刚看到这道题的时候,感觉是二分图匹配。然而只是知道二分匹配,没有具体学过,就趁着这题大致学了下匈牙利算法。这题没什么好说的,就是一个标准的匈牙利模板,去网上搜匈牙利算法,就是以此题为原型讲的。#include <cstdio>#include <cstr...原创 2019-01-19 22:55:09 · 209 阅读 · 0 评论 -
HDOJ1874 畅通工程续-dijkstra算法
题目链接 点击打开链接#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#define INF 0xfffffffusing namespace std;int n,m;int G[205][205]; //存...原创 2018-06-03 11:38:27 · 127 阅读 · 0 评论 -
POJ1287 Networking-kruskal算法
题目链接 点击打开链接最小生成树模板题,我用的kruskal,大致思路是对所有路从小到大排序,每次选最小的路,并且选的路不能形成环路。判断环路用到并查集的思想,添加新的路前,先用并查集find一下路两边的点祖先,如果祖先一样,说明两个点联通,添加该路会形成环路,所以continue下一次循环,否则如果祖先不一样就添加这条路。一直重复下去直到添加n-1条路。#include <algorith...原创 2018-06-03 11:45:31 · 161 阅读 · 0 评论 -
POJ3259 Wormholes-Bellman-Ford算法
题目链接 点击打开链接判断是否有负权回路,bf模板,对所有点进行n-1次松弛操作,如果不存在负权回路,就找找出了所有点到起点的最短路,否则还能继续松弛。松弛操作:如果一个点p到起点start的距离大于从起点到另一个点other,再到p的距离,就把start->p的距离修改为start->other->p的距离,这个叫松弛。#include <cstdio>#incl...原创 2018-06-03 11:56:00 · 273 阅读 · 0 评论 -
HDOJ1548 A strange lift -------迪杰特斯拉算法
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1548 Problem Description There is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <= Ki <= N) ...原创 2018-09-05 20:30:56 · 224 阅读 · 0 评论 -
HDOJ1869 六度分离 ------ floyd算法
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1869 Problem Description 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人,即只用6个人就可以将他们联系在一起,因此他的理论也...原创 2018-09-06 23:39:05 · 168 阅读 · 0 评论 -
HDOJ4786 Fibonacci Tree --- Kruskal算法+路径压缩并查集
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4786Problem Description Coach Pang is interested in Fibonacci numbers while Uncle Yang wants him to do some research on Spanning Tree. So Coach Pang...原创 2018-10-01 14:33:06 · 340 阅读 · 0 评论 -
HDOJ2544最短路-----堆优化的Dijkstra
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2544Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input输入包括...原创 2018-10-12 19:50:23 · 223 阅读 · 0 评论 -
HDOJ1301 Jungle Roads----Prim
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1301题意:给N个村庄,然后n-1行输入,每行是村庄编号、与它连接的村庄数,然后是每个与它连接的村庄的距离。求最小生成树。Prim:贪心思想,假设在某步已经找到了最小生成树的一部分G,dis记录了其它每点到G中最短的距离,pre记录最短距离对于的G中连接点,从所有dis中找出最短的,将其加...原创 2018-09-29 12:04:20 · 196 阅读 · 0 评论 -
HDOJ3790 最短路径问题 --- SPFA算法求多关键字最短路
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3790Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示...原创 2018-10-30 12:07:08 · 341 阅读 · 0 评论 -
洛谷OJ P2731 骑马修栅栏 --- 欧拉回路
题目链接 https://www.luogu.org/problemnew/show/P2731题目背景Farmer John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。题目描述John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任...原创 2018-11-03 10:46:36 · 182 阅读 · 0 评论 -
HDOJ2586 How far away ---- Tarjan算法离线查询最近公共祖先(LCA)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2586Problem DescriptionThere are n houses in the village and some bidirectional roads connecting them. Every day peole always like to ask like this "H...原创 2018-11-01 22:21:40 · 306 阅读 · 0 评论 -
HDOJ4324 Triangle LOVE --- 拓扑排序
题目链接 http://acm.hdu.edu.cn/viewerror.php?rid=27085135Problem DescriptionRecently, scientists find that there is love between any of two people. For example, between A and B, if A don’t love B, the...原创 2018-11-07 21:43:09 · 211 阅读 · 0 评论 -
HDOJ1269 迷宫城堡 ---- Tarjan算法求有向图强联通分量
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1269Problem Description为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明可以通过这个通道由A房间到达B房间,但并不说明通过它可以由...原创 2018-11-06 00:18:33 · 173 阅读 · 0 评论 -
HDOJ1384 链式前向星+差分约束系统
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1384Problem DescriptionYou are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn.Write a program that:> reads the number of ...原创 2018-11-23 17:39:20 · 200 阅读 · 0 评论 -
计蒜客-青出于蓝胜于蓝 dfs+树状数组
题目描述: 武当派一共有 n人,门派内 n 人按照武功高低进行排名,武功最高的人排名第 1,次高的人排名第 2,... 武功最低的人排名第 n。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到 p。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝。请你帮忙计算每个人的所有子弟(包括徒...原创 2018-12-30 00:09:21 · 231 阅读 · 0 评论 -
(转) 匈牙利算法(简单易懂)
转自 https://blog.csdn.net/sunny_hun/article/details/80627351匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。-------等等,看得头大?那么请看下面的版本: ...原创 2019-01-19 20:26:15 · 724 阅读 · 0 评论 -
POJ1679 The Unique MST-Prim算法
题目大意就是给一个图,判断最小生成树是否唯一。我用的Prim算法,在找最后一个节点i的时候特殊判断:判断节点i是否有至少2条路距离已找到节点最短距离为x的,如果满足任意一个条件,说明最小生成树不唯一。题目链接 点击打开链接#include <cstdio>#include <iostream>#include <cstring>#inclu...原创 2018-05-17 23:15:01 · 211 阅读 · 0 评论