随笔分类 - 最短路.最小生成树
摘要:题目链接:https://codeforces.com/contest/1450/problem/E 题解: 题目中的等式关系为 和 首先,等式关系不好处理,考虑化成不等式 第一种: 且 $a_v-a_u\leq -1
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P5304 题解: 给一张图和一个点集 ,问点集内两两最短路的最小值 考虑将集合进行若干次划分: 每次对于一个二进制位 ,如果 该位为 1 ,那么就划到第一个集合,否则划到第二个集合 然后求第一个
阅读全文
摘要:题目链接:https://codeforces.com/contest/1693 这场的题都非常好啊…… 因为现在是从 div1 开始做了,所以可能刚开始会有点吃力(这场我就会做一个 1B 呜呜呜) 1A 先把后缀的极长 0 段删去 考虑对于每一个 右移 操作,首先必然和一个 左移 操作一一对应(最
阅读全文
摘要:bitset:一个01位如果用bool存的话需要 1byte,而用bitset只需要 1bit(=1/8 byte) 每次两个集合取并的时候可以除以一个大常数(32/64),从而优化复杂度 LOJ515 设 表示考虑到第 个区间,能形成的和的状态是0/1(该位为1代表可以出现
阅读全文
摘要:比赛链接:https://atcoder.jp/contests/abc281 题解: D 表示考虑到第 i 个数,集合加入了 个数,余数为 的答案 转移即可 // by SkyRainWind #include <cstdio> #include <ve
阅读全文
摘要:题目链接:https://codeforces.com/problemset/problem/325/C 题解: 先建出来图,每条边连接一个点(起始的怪物)和一堆点(能爆出来的怪物) 先考虑min的情况,考虑反着跑最短路(从只能爆出钻石的怪物开跑),发现如果一个怪物能由其爆出来的怪物更新的话,爆出来
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2046 首先观察可以发现最优解一定是左上部分是全0,右下是全1这样的形式 然后题目就相当于让我们求一个 的最小割 由于这是网格图(属于平面图)。平面图最小割 =
阅读全文
摘要:概括:边权为0/1的图求最短路,常见于网格图的bfs。本质是特殊的dijkstra,因为边权只有0/1,不再需要优先队列维护 Luogu4667 注意需要维护的是格点的坐标和格子的坐标,然后边权如果为0(不换)就push_front,如果为1(换)就push_back // by SkyRainWi
阅读全文