图论
文章平均质量分 85
ACM图论
正月看飞雪
这个作者很懒,什么都没留下…
展开
-
最近公共祖先(LCA) 向上标记法 & 树上倍增法 & Tarjan算法
求最近公共祖先的算法一.向上标记法从x向上走到根节点, 并标记路径上经过的点从y向上走到根节点, 当遇到第一个被标记的点就找到了LCA(x, y)二.树上倍增发时间复杂度: O(mlogn) 用 f[x, k] 表示x向上走2^k到达的节点, 很容易知道 , f[x, 0] 就是x的父节点, 递推关系就是, f[x, k] = f[ f[x, k - 1], k - 1] 用depth[x], 存.原创 2020-05-10 17:12:47 · 674 阅读 · 1 评论 -
POJ - 1201 Intervals差分约束
题目大意给定n个区间, 求选择若干个数, 保证每个区间中选择的数不少于c思路根据题目的条件写出不等式在建图时, 由于用到了前缀合, 我们额a,b的取值范围增加1, 把取值范围变为1~50001最后dis[50001]里面存的就是本题的答案由于数据保证了c<=b-a+1, 所以本题一定有解#include <iostream>#include <cstring>#include <algorithm>#include <queue&g原创 2020-05-09 14:02:19 · 148 阅读 · 0 评论 -
SCOI2011 糖果 差分约束
题目描述幼儿园里有 N 个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候, 老师需要满足小朋友们的 K 个要求。幼儿园的糖果总是有限的,老师想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。输入格式输入的第一行是两个整数 N,K。接下来 K 行,表示分配糖果时需要满足的关系,每行 3 个数字 X,A,B。如果 X=1.表示第原创 2020-05-09 12:42:15 · 172 阅读 · 0 评论 -
Sightseeing Cows POJ - 3621 01分数划分+SPFA求正环
题目描述给定一张L个点、P条边的有向图,每个点都有一个权值f[i],每条边都有一个权值t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数L和P。接下来L行每行一个整数,表示f[i]。再接下来P行,每行三个整数a,b,t[i],表示点a和b之间存在一条边,边的权值为t[i]。输出...原创 2020-05-08 15:04:05 · 151 阅读 · 0 评论 -
信息学一本通 秘密的牛奶运输 求次小生成树
题目描述农夫约翰要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。运输的总距离越小,运输的成本也就越低。低成本的运输是农夫约翰所希望的。不过,他并不想让他的竞争对手知道他具体的运输方案,所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。注意:如果两个方案至少有一条边不同,则我们认为是不同方案;费用...原创 2020-05-08 12:03:13 · 411 阅读 · 0 评论 -
POJ - 3662 Telephone Lines 最短路二分+双端队列优化
题目描述给定一个图, 可以选着一个1 -> n的路线, 然后可以把这条路上的k个边免费, 然后支付免费后最贵的一条边, 求支付的这条边最小是多少样例Sample Input5 7 11 2 53 1 42 4 83 2 35 2 93 4 74 5 6Sample Output4思路二分答案, l = 0, r = 1e6+1因为结果可能是0的, 所以左...原创 2020-05-04 17:31:45 · 179 阅读 · 0 评论 -
POJ - 1062 昂贵的聘礼 最短路建图问题
题目描述年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:“嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其...原创 2020-05-03 21:23:26 · 198 阅读 · 0 评论 -
cf: Ehab and Path-etic MEXs
题目大意给定一个连通图,要求你给他们的边赋值,所有边的MEX(u, v)的最大值最小me(u, v)是u->v的边上的没有出现过的最小整数样例inputCopy61 21 32 42 55 6outputCopy03241 MEX(1, 6)=2; MEX(1, 3)=0; MEX(1, 4) = 1.思路先将叶子结点的边从依次赋值,然后,再赋值不是...原创 2020-03-15 11:40:43 · 191 阅读 · 0 评论 -
二进制状态压缩 CH0103 最短Hamilton路径 (旅行商问题)
题目大意给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,...原创 2020-03-12 15:21:59 · 294 阅读 · 0 评论 -
Kruskal算法 走廊泼水节 CH6201
问题描述给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意: 树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数t,表示共有t组测试数据。对于每组测试数据,第一行包含整数N。接下来N-1行,每行三个整数X,Y,Z,表示X节点与Y节点之间存在一条边,长度为Z。输出格式每...原创 2020-03-09 16:00:30 · 209 阅读 · 0 评论 -
POJ1734 Sightseeing trip floyd求最小环问题
问题描述m个点, m条边, 求图中存在的路径最小的环样例Sample Input5 71 4 11 3 3003 1 101 2 162 3 1002 5 155 3 20Sample Output1 3 5 2思路 用ans存最小环的距离,dis[i, j]存i 到 j 的最短路径, pass[i, j] 存 i 到...原创 2020-03-02 13:31:23 · 185 阅读 · 0 评论 -
POJ 1094 Sorting It All Out 传递闭包问题 & floyd算法
题目大意给定 n 个变量和 m 个不等式。其中 n 小于等于26,变量分别用前 n 的大写英文字母表示。不等式之间具有传递性,即若 A>B 且 B>C ,则 A>C。请从前往后遍历每对关系,每次遍历时判断:1.如果能够确定全部关系且无矛盾,则结束循环,输出确定的次序;2.如果发生矛盾,则结束循环,输出有矛盾;3.如果循环结束时没有发生上述两种情况,则输出无定解。...原创 2020-02-29 14:20:29 · 245 阅读 · 0 评论 -
CH 6106最优贸易 最短路问题+动态规划
问题描述在一条带权图上找到两个点,使得两个点的差值最大,值小的点先经过样例输入样例:5 54 3 5 6 11 2 11 4 12 3 23 5 14 5 2输出样例:5思路:用 dmin[x] 表示 1 - x的路径中值最小的点,dmax 代表 n - x 的路径中值最大的点,最后用dmax[x] - dmin[x] 求得最终结果,用两遍SPFA 分别更新最小值和...原创 2020-02-28 16:35:56 · 160 阅读 · 0 评论 -
POJ 2449 Remmarguts' Date A*算法
题目大意给定 n个点 m条边 给定起点终点和k求起点到终点的第k短的路径是多少 没有就输出-1样例Sample Input2 21 2 52 1 41 2 2Sample Output14思路 一个比较 直接的想法是使用优先队列BFS进行求解。优先队列(堆)中保存一些二元组(x.d...原创 2020-02-01 12:33:06 · 1721 阅读 · 0 评论 -
拓扑排序
拓扑排序 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没有先决条件,可以安排在任何时间开始。为了形象地反映出整个工程中各个子工程(活动)之间的先后关系,可用一个有向图来表示,图中的顶点代表活动(子工程),图...原创 2020-01-10 15:52:34 · 302 阅读 · 0 评论 -
HDU 2544【dijkstra模板】(邻接矩阵)
最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 112440 Accepted Submission(s): 48367Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t...原创 2019-11-27 22:47:29 · 240 阅读 · 0 评论 -
最小生成树 dijkstra算法模板 floyd算法模板 POJ 1287 Networking
最小生成树定义:给定一张带权无向图,G = (V, E), n = |V|, m = |E|. 由V中全部n个顶点和E中n - 1 条变构成的无向连通子图被称为G的一棵最小生成树。算法:prime 算法 和 Kruskal算法Kruskal任意时刻, 每次选取给定的边中最短的一条边,加入到森林中,直到加完全部的边。加边过程用并查集添加。添加最短边的方法按照边的权值从小到大排序,然后从...原创 2020-01-10 15:28:56 · 262 阅读 · 0 评论 -
HDU1690 Bus System 【floyd算法】
题目大意:输入2 //代表2个案例1 2 3 4 1 3 5 7 //// 案例1 代表l1---l4 c1 -- c44 2 4个站 2个问题 求2个路径12341 4 求1到4 的最小花费4 1 求4到1的最小花费1 2 3 4 1 3 5 7 /////案例24 1123101 4输出Case 1:The minimum co...原创 2020-01-10 19:05:31 · 296 阅读 · 0 评论 -
HDU2066 一个人的旅行 dijkstra + 多起点问题
题目大意:有T条路,和小草相邻的城市有S个,他想去的地方有D个问他去到想去的城市中,最近的一个是花的时间是多少。输入6 2 31 3 51 4 72 8 123 8 44 9 129 10 21 28 9 10输出`9因为题目中没有给出具体的有多少个城市,只是给出了多少条边,所以这里不好建立邻接矩阵,这里就采用邻接表,邻接表讲解由于起点有很多个,需要求出...原创 2020-01-10 18:56:09 · 356 阅读 · 0 评论