随笔分类 -  图论

摘要:统一一下代码风格 割点 概念: 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。 求法: tarjan:判断顶点U是否为割点,用U顶点的dnf值和它的所有的孩子顶点的low值进行比较,如果 阅读全文
posted @ 2020-11-01 21:24 小又又 阅读(189) 评论(0) 推荐(2)
摘要:二分图最大匹配 二分图匹配:每个左部点最多与一个右部点相连,每个右部点最多与一个左部点相连 算法流程: 如果后来的和以前的发生矛盾,则以前的优先退让。 如果以前的退让之后没有点与之相连,则以前的拒绝退让,新来的去寻找下一个匹配。 如果新来的谁也匹配不上,就匹配不上吧: 学会了二分图最大匹配后,另外几 阅读全文
posted @ 2020-10-20 07:36 小又又 阅读(234) 评论(0) 推荐(0)
摘要:*三道题的链接 P1645 序列 P1986 元旦晚会 SP116 INTERVAL - Intervals 除了第三题是多组样例,其他的都一模一样 *差分约束的条件:给定$n$个变量和$m$个不等式,每个不等式形如$x_i-x_j\le s_k$,求$x_{n}-x_1$的最大值,例如: \beg 阅读全文
posted @ 2020-10-12 14:56 小又又 阅读(268) 评论(0) 推荐(1)
摘要:1、[POJ 1330]Nearest Common Ancestors LCA的模版题 因为没有告诉我们谁是根节点但是告诉我们方向了,所以我们在每次建边的时候可以记录一下,节点的父亲,如果一个节点没有父亲,那么他就是根节点。 在倍增找LCA的时候我们首先要知道每个点的深度,bfs就好了dep数组记 阅读全文
posted @ 2020-09-21 12:56 小又又 阅读(446) 评论(0) 推荐(0)
摘要:对于这道题,首先要明确,块的积水量取决于什么 1、如果水一直只往一个方向流,块的积水量,等于从它出发,沿该方向的最大高度,因为之前不管有过低,到了最大高度都会被卡住; 2、如果水往两个方向一直流,块的积水量,由1知,每条路径的最大积水量分别为max1,max2,如果两条路径一起考虑呢?应该为min( 阅读全文
posted @ 2020-09-01 20:06 小又又 阅读(161) 评论(0) 推荐(0)
摘要:之前的博客markdown出锅了 ̄□ ̄||,又重新写了一遍 *传送 题意就是一个$n$ $\times$ $m$的矩阵,一开始全是零,你可以把每一行或每一列都加1或减1,要求特定区域的值与要求值相等 我们设$x_i$​为第$i$行的数变化的多少,设$y_j$为第$j$列的数变化的多少,如果我们要求第 阅读全文
posted @ 2020-04-23 16:57 小又又 阅读(414) 评论(1) 推荐(0)
摘要:*传送 题意: 给定$n$个点,求从$s$到$t$的最短路径,其中有两种走法(可以混搭):一种是走给定的m有向边($u_i$,$v_i$,$w_i$);另一种可以由任意点x到任意点y,其费用是$c$ $\times$ ($x$ $xor$ $y$) 朴素的建法是$O$ ($n^2$ $\times$ 阅读全文
posted @ 2020-04-19 18:39 小又又 阅读(192) 评论(1) 推荐(0)
摘要:*传送 FJ想按照奶牛产奶的能力给她们排序。现在已知有$N$头奶牛$(1 ≤ N ≤ 1,000)$。FJ通过比较,已经知道了$M(1 ≤ M ≤ 10,000)$对相对关系。每一对关系表示为“X Y”,意指X的产奶能力强于Y。现在FJ想要知道,他至少还要调查多少对关系才能完成整个排序。 这道题和F 阅读全文
posted @ 2020-02-27 13:39 小又又 阅读(267) 评论(1) 推荐(0)
摘要:*传送 给定平面上的n个点,定义$(x_1,y_1)$到$(x_2,y_2)$的费用为min(|$x_1$-$x_2$|,|$y_1$-$y_2$|),求从1号点走到n号点的最小费用。 先给一段证明:给定三个x值,$x_1<x_2<x_3$。可得$x_2-x_1<x_3-x_2<x_3-x_1$,对 阅读全文
posted @ 2020-02-17 21:56 小又又 阅读(125) 评论(0) 推荐(0)
摘要:*传送 FJ的$N(1 <= N <= 100)$头奶牛们最近参加了场程序设计竞赛:)。在赛场上,奶牛们按1..N依次编号。每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就是说,奶牛们的编程能力有明确的排名。 整个比赛被分成了若干轮,每一轮是两头指定编号的奶牛的对决。如果编号为A的 阅读全文
posted @ 2020-02-17 21:41 小又又 阅读(333) 评论(1) 推荐(0)
摘要:破坏掉一些路径,修复他的代价就是该路径的长度,没有破坏的路径,修复它的代价是0(*链式前向星建图) SPFA求最短路: 1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cmath> 5 #inc 阅读全文
posted @ 2020-02-11 12:24 小又又 阅读(172) 评论(0) 推荐(0)
摘要:题目给定村庄建设的时间是从小到大排列的(*不用离散化了)。对于第一次查询,从村庄1开始,一直到第一个村庄未建成开始下一次查询(此时后面的村庄肯定都没建成),每次不断从上一个未建成的村庄一直更新到下一个未建成的村庄(以此保证更新的村庄已建设完毕),直到最后一次查询。 *floyd的代码: 1 for( 阅读全文
posted @ 2020-02-08 17:53 小又又 阅读(217) 评论(0) 推荐(0)
摘要:Choose the best route Problem Description One day , Kiki wants to visit one of her friends. As she is liable to carsickness , she wants to arrive at h 阅读全文
posted @ 2020-01-17 20:00 小又又 阅读(275) 评论(0) 推荐(0)
摘要:畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。 Input 本题目包 阅读全文
posted @ 2020-01-17 19:00 小又又 阅读(230) 评论(0) 推荐(0)
摘要:题目描述 在这个问题中,给定一个值S和一棵树。在树的每个节点有一个正整数,问有多少条路径的节点总和达到S。路径中节点的深度必须是升序的。假设节点1是根节点,根的深度是0,它的儿子节点的深度为1。路径不必一定从根节点开始。 输入格式 第一行是两个整数N和S,其中N是树的节点数。 第二行是N个正整数,第 阅读全文
posted @ 2020-01-16 11:41 小又又 阅读(197) 评论(0) 推荐(0)
摘要:每个节点,他所连接的各个节点之间的距离都是2,因为一共那个点,所以两层循环只相当于nlogn 把一个点所连接的所有点求和,(k-a[i])*a[i]表示这个点和剩余所有的点的乘积的和,把每个点都如此处理,再把所得结果相加,即每个点和他相邻为2 的点的乘积得和 这……2020年10月的我再来看看这篇博 阅读全文
posted @ 2019-11-10 12:04 小又又 阅读(178) 评论(0) 推荐(0)
摘要:题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入格式 第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000) 接下来M行每行包含三个整数Xi、Yi、Zi,表示有一条长度为Zi的无向边连接结点Xi、Yi 输出格式 输出包含一 阅读全文
posted @ 2019-10-29 22:50 小又又 阅读(269) 评论(0) 推荐(0)