随笔分类 - 图论
摘要:https://www.luogu.com.cn/problem/CF1386C https://www.luogu.com.cn/problem/P6684 cf 上时限 \(1\) 秒,洛谷 \(2\) 秒。 思路 维护是否有奇环可用拓展域并查集。暴力复杂度 \(O(mq)\)。发现插入容易删除
阅读全文
摘要:P9351 思路 观察到一次覆盖操作相当于 \((u,v)\) 向 \((u,v)\) 为中心的一个矩形挖去四个角中每个点连代价为 \(1\) 的边。 因为 \(r\le c\),\(r\le \sqrt {rc}\)。暴力是 01bfs,到每个点处理覆盖操作时枚举行一边,用 \(n\) 个并查集维
阅读全文
摘要:abc355e 思路 WC2024T3 中知道一个技巧:如果知道区间 \([l,r]\) 的和就连边 \(l\to r+1\),那么想推出 \([L,R]\) 的区间和就要求 \(L\) 和 \(R+1\) 联通。 按题意把符合要求的边连上,设边权为 \(1\) 跑 bfs,求出 \(L\) 到 \
阅读全文
摘要:abc355f 直接贺 lct 维护 mst 的代码。 思路 观察到 \(w_i\le 10\),考虑分开建 \(10\) 个图表示边权小于等于 \(i\) 的边组成的图。连并查集,记录当前图连了 \(siz_i\) 条边。 可以发现第 \(i-1\) 个图是第 \(i\) 个图的子图。所以差分 \
阅读全文
摘要:CF1575E 思路 点分治,记录当前子树到分治中心的权值和和换车次数。将新子树的答案合并时分类讨论分治中心到子树祖先 \(u\to v\) 的颜色。树状数组维护前缀和。复杂度 \(O(n\log^2 n)\)。 code int n,k,a[maxn],ans; int head[maxn],to
阅读全文
摘要:[JOISC2022] 监狱 思路 因为是一棵树,最短路径唯一,所以每次都让一个人走到底。当走 \(s->t\),\(s->t\) 中此时没有点,意味着起点这条路径上的人一定先于这个人走,终点在这条路径导航的人一定后于这个人走。对于他们的相对顺序的限制,先走向后走连边,连边跑拓扑排序看有没有环。复杂
阅读全文
摘要:P6681 加强版 qoj1193,\(n\leq 1000,m=16\)。 思路 考虑选串的过程,是给短的后面加串直到长短互换。设状态 \(id_{i,j}\) 表示当前长的一串末尾是 \(s_i\),比短串长 \(j\)。枚举加入的串,状态的转移分两种: 加入后短串还是比长串短。\(id_{i,
阅读全文
摘要:P5344 思路 把图建出来跑 dij 即可。 对于建图,可以想到对每个操作 \(1\) 建一个虚点,从 \(u1\) 到 \(v1\) 向虚点连代价为 \(w\) 的边,从虚点向 \(u2\) 到 \(v2\) 连代价为 \(0\) 的边。此时图中有 \(n\times m\) 条边,无法接受,考
阅读全文
摘要:P3280 思路 没有求买入了多少,所以可以当作每次把能买的全都买了,走在路上不行再扔。卖出时由题意能卖多少卖多少。 主要的问题是求从城到城最多能带多少东西。计算两点间路径的权值最小值而不在意距离,建最大生成树,把图改作树。通过倍增的方式,求 lca 时算路径权值的最小值。对于火车,可以理解为一条权
阅读全文
摘要:title: '' date: 2024-02-28 18:45:38 tags: [题解,图论,数据结构] published: true hideInList: false feature: isTop: false P2685 简化版:P1186 思路 题意即:对于一个图任意断一条边后形成的最
阅读全文
摘要:完全二叉树求 lca https://blog.csdn.net/kksleric/article/details/7836649 先考虑完全二叉树的 lca 求法。中序遍历分配编号。 设第 \(k\) 位是 \(u\oplus v\) 最左边的 \(1\),则 \(lca(u,v)\) 是 \(u
阅读全文
摘要:joisc2018_l 思路 \(a_i\) 和 \(a_{i+1}\) 之间取最短路最优。但因为有不能折返的限制,所以希望对每对 \(u,v\) 找到 \(k\) 条最短路使得任意断掉 \(u\) 的一条出边和 \(v\) 的一条入边,\(u\) 到 \(v\) 的最短路还在 \(k\) 条中。
阅读全文
摘要:CF1801E 思路 并查集将权值相同的连在一起,取可行区间的并集。可以 \(O(n^2)\)。考虑优化,总共只有 \(n-1\) 次有效合并,只要没有重复检查已经连通的点就可以保证复杂度。 倍增 \(u\) 向上 \(2^i\) 个祖先的状态,代表从下往上和从上往下的区间。将两条路径倍增合并,\(
阅读全文
摘要:CF875C 思路 显然,满足 \(S_{i-1}\leq S_i\) 即可使整体升序。对于每个 \(S_{i-1}\leq S_i\),都需要满足一些限制,只要所有限制前后不矛盾,则输出是。 分析 \(S_{i-1}\leq S_i\)。枚举位置 \(j\) 为第一个两者不等的位置,有几种情况:
阅读全文