随笔分类 -  图论

摘要:C - Drazil Likes Heap 题意: 给定一个高度为$h$的完全二叉树,也满足最大堆的性质,执行下面操作,得到一个高度为$g$的完全二叉树 求操作后的完全二叉树的最小权值和,和操作的$id$ 分析: 看了题解写的 从下往上考虑,定义h树为还没操作的树,定义g树为操作结束的树,经过观察发 阅读全文
posted @ 2020-04-06 14:24 czh~ 阅读(373) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/contest/1307/problem/D 题意: 在图中添加一条边,连接两个不同的特殊点,使得最短路径最大 分析: 假设连接$v$和$u$,最短路径有三种情况,第一,不走添加的边的最短路径,第二,$1->v->u->n$,第三,$1->u 阅读全文
posted @ 2020-03-03 16:49 czh~ 阅读(358) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6736 题意: 在给定图中寻找所有最小环 保证不存在一条边经过两个简单环 数据范围: $1\leq n \leq 300 000$ $1\leq m \leq 500 000$ 分析: 每次遍历到某个点 阅读全文
posted @ 2019-09-28 19:17 czh~ 阅读(647) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/gym/101987/my 题意: 顶点数为$n$,边数为$m$ 求出每个点对$(a,b)$,$a$到$b$的最小路径的最大值 数据范围: $1\leq n \leq 500$ $1\leq m \leq 1250000$ 分析: 直接flo 阅读全文
posted @ 2019-09-27 15:23 czh~ 阅读(400) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/gym/101987 题意: 有长度为$n$的只包含$B,R$的字符串 有m种关系,每个关系说出三个位置的确切字符 这三个位置的字符最多有一个是错的 数据范围: $1\leq n \leq 5000$ $1\leq m \leq 10000$ 阅读全文
posted @ 2019-09-23 15:57 czh~ 阅读(399) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/contest/1217/problem/D 题意: 给图染上$k$种颜色,相同颜色不能形成一个环 数据范围: $1\leq n \leq 5000$ $1\leq m \leq 5000$ 分析: 分类讨论: 1,不存在环,明显涂上一种颜色 阅读全文
posted @ 2019-09-19 17:14 czh~ 阅读(455) 评论(0) 推荐(1)
摘要:题目链接: http://codeforces.com/gym/101161/attachments 题意: 给出节点数为$n$的树 有$q$次询问,输出$a$节点到$b$节点路程中,经过的边的中位数 数据范围: $1\leq n \leq 100000$ $1\leq q \leq 100000$ 阅读全文
posted @ 2019-09-10 21:50 czh~ 阅读(176) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/contest/999/problem/E 题意: 在有向图中加边,让$S$点可以到达所有点 数据范围: $ 1 \leq n \leq 5000$ 分析: 先从$S$点出发,所有不可达点标记一下 如果某个不可达点可以被另一个不可达点到达,那 阅读全文
posted @ 2019-08-09 11:38 czh~ 阅读(221) 评论(0) 推荐(0)
摘要:题目链接: https://codeforces.com/contest/1196/problem/F 题意: 在无向图的所有最短路点对中,求出第$k$大 数据范围: $ 1 \leq k \leq 400$ 分析: 其实只需要保留$k$条边,这样已经有了$k$个点对的距离小于排好序后第$k$条边的 阅读全文
posted @ 2019-07-13 21:39 czh~ 阅读(477) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/1187/problem/E 题意: 给出一颗树,找到一个根节点,使所有节点的子节点数之和最大 数据范围: $2 \le n \le 2 \cdot 10^5$ 分析: 最暴力的方法是枚举所有的根节点,计算他们子节点之和,复杂度 阅读全文
posted @ 2019-07-04 19:50 czh~ 阅读(484) 评论(0) 推荐(1)
摘要:题目链接: http://codeforces.com/contest/1139/problem/E 题意: 开始有$n$个同学和$m$,每个同学有一个天赋$p_{i}$和一个俱乐部$c_{i}$,然后在$d$天里,每天早上去除一名同学$k_{i}$,每天中午在每个俱乐部选一个人组成战队。战队的战斗 阅读全文
posted @ 2019-04-18 13:54 czh~ 阅读(385) 评论(0) 推荐(0)
摘要:题意:给出一棵根节点为1的树,执行m次修改操作,每次修改为a,b,c,表示a节点的子树中,距离a小于等于b的子节点的权值加上c,求m次操作后每个节点的权值 分析:用线段树维护每层节点的权值,然后dfs遍历这颗树,当前节点有操作时,把当前节点的深度到被修改的最大深度都加上c(实际上只有当前节点的子节点 阅读全文
posted @ 2018-11-14 13:39 czh~ 阅读(170) 评论(0) 推荐(0)
摘要:题意:给出任意两点之间的距离,然后逐个删除这些点和与点相连的边,问,在每次删除前的所有点对的最短距离之和 分析:首先想到的是floyd,但是如果从前往后处理,复杂度是(500)^4,超时,我们从后往前处理,这样我们可以看作是添加点,而且这样的话每次只需要考虑添加点的缩进,所以复杂度是(500)^3, 阅读全文
posted @ 2018-11-10 15:40 czh~ 阅读(236) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/gym/101873/problem/F 题意:有n个插孔,m个机器,和一个插板,一个插孔可以连接一个机器,插板可以使一个插孔连接三个机器,找到最大的连接数 当时第一眼觉得是网络流的题目,因为看过类似的题目,他是有k个插板,但是一个插板可以使插孔 阅读全文
posted @ 2018-10-31 20:08 czh~ 阅读(284) 评论(0) 推荐(0)
摘要:题目链接:https://codeforces.com/gym/101873/problem/C spaf的复杂度有点迷,按道理来说,一个简单的spaf在这题的复杂度是1e9,所以不敢写,然后用优先队列ac,发现居然比spaf要慢 现在列出以下总结: 1.对于稀疏图,spaf的复杂度不高于n*m,而 阅读全文
posted @ 2018-10-30 17:32 czh~ 阅读(288) 评论(0) 推荐(0)
摘要:题意:给出一颗树,现在,给哪些距离为2的点对,加上一条边,问所有点对的距离和 题解:如果没有加入新的边,距离和就会等于每条边的贡献,由于是树,我们用点来代表点上面的边,对于每条边,它的贡献将是(子树大小)*(n-子树大小) 而这题加上了新边,我们依然这样算贡献,跨越旧边的次数,依然是(子树大小)*( 阅读全文
posted @ 2018-10-18 18:56 czh~ 阅读(169) 评论(0) 推荐(0)
摘要:学习博客:https://www.cnblogs.com/ZJUT-jiangnan/p/3632525.html 入门题:poj1273 题意:求最大流 题解:直接套用网络流的模板,注意,如果重边,那么将边加起来,而不是取最大值,注意:这题多组输入 阅读全文
posted @ 2018-10-02 10:17 czh~ 阅读(140) 评论(0) 推荐(0)
摘要:因为最近在学2sat,需要学习前置技能—Tarjan算法,所以花了一天的时间学习这个算法 算法步骤: 1.从一个点开始dfs,并加入栈 2.如果下一个点没有到过,跳到第一步 3.如果下一个点到过,并且在栈中,下一个点到这个点,这一段构成一个回路,也就是可以缩点 具体实现 题目:poj2186 题解: 阅读全文
posted @ 2018-09-30 20:03 czh~ 阅读(1605) 评论(0) 推荐(1)
摘要:差分约束系统一般用来解决a-b>=c的问题,有n个这样的限制条件,求出某个满足这些条件的解 可以将这个问题转化成最长路问题,即b到a的距离最少为c,而有多条b到a的路的话,我们就取最长的b到a的距离。 将限制条件转化成为一条边,然后求最长路,一般解决最长路问题,我们使用的算法是spfa 入门题 hd 阅读全文
posted @ 2018-09-19 11:30 czh~ 阅读(255) 评论(0) 推荐(0)
摘要:题目链接 学习博客:https://blog.csdn.net/Z_Mendez/article/details/47057461 k短路没有我想象的那么难,还是很容易理解的 求s点到t点的第k短路径 先求出t到所有点的最短路径,用g[i]表示t到i的距离 从s开始”bfs“,按照(g[i]+bfs 阅读全文
posted @ 2018-09-08 21:21 czh~ 阅读(142) 评论(0) 推荐(0)