摘要: 传送门 真·连暴力都不会系列 首先注意到每次操作至少会删去一半的元素,所以操作最多只会执行 log 次 然后我们观察这个过程,发现在一个最大值两边的较小值互不影响 在最大值删完之前显然互不影响,最大值被删时显然有一个子区间已经被删完了,所以互不影响 那貌似可以划分子问题了 令 \(dp[i][j]\ 阅读全文
posted @ 2021-08-12 20:55 Administrator-09 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 传送门 真相是我这场真的爆零了…… 考场上想了以每个「预言家」(我也没玩过狼人杀)为结尾切出来几个连通块 但觉得还是挺不可做的就没往下想 其实正解就是这样,因为每个「预言家」的话真假一旦确定,这个连通块说真话的人数就确定了 所以可以把这些预处理出来 然后枚举说真话的人数check 其实就是把说假话的 阅读全文
posted @ 2021-08-12 20:29 Administrator-09 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 传送门 考试时思路是从每个点BFS,浸染当前与它最近的点,但复杂度有点假 其实这个过程可以一次dijkstra完成,利用多源最短路 每个特殊点都是一个源点,扩展时记录一下是从哪个源点扩展过来的 统计答案时枚举所有两端点不是由同一源点扩展的边即可 挺好的题,可惜没想出来 Code: #include 阅读全文
posted @ 2021-08-12 20:16 Administrator-09 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 传送门 我一定是傻了一直觉得这题是spfa求最长路 然后等我写完发现过不了样例,手模发现有后效性的时候整个人傻了 给一堆二元组,要什么 \(i<j\) 且 \(a_i \leqslant b_j\) 之类的题切入点基本都是「×××一定更优」 但我一开始没找到这样的性质 其实也很简单,若 \(a_i< 阅读全文
posted @ 2021-08-12 20:11 Administrator-09 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 传送门 自闭了……考场上exgcd打错然后对着屏幕自闭了一个小时不知道它为什么解得不对 开始恶补: 对于方程 \(a*x+b*y=c\) ,就等价于 \(a*x \equiv c\pmod{b}\) 首先它有解的条件是 \(c \mid gcd(a, b)\) 然后exgcd可以用来求一组 \(x, 阅读全文
posted @ 2021-08-12 19:47 Administrator-09 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 传送门 是 @Yubai 的思路 发现一个点还可以被倒着经过一次就很烦 可以另外建出一类全是反向的边,这样就变成了从同一起点出发,到达同一终点的最短路 然而这两个几乎不是一个图,考虑二维spfa 令 \(dis[i][j]\) 为正向走到 \(i\) ,逆向走到 \(j\) 的最短长度 再令 \(r 阅读全文
posted @ 2021-08-12 19:21 Administrator-09 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 传送门 考场上用了一个平均 \(O(n)\) ,最坏 \(O(n^2)\) 的方法过掉了 先说说这个方法: 取一个左指针,一个右指针,初始位置都在 \(k\) 每次让右指针在满足 \(tot \leqslant 0\) 的前提下尽量右移 当发现右指针移动不了时,尝试把左指针左移一位 如果发现移过去会 阅读全文
posted @ 2021-08-12 18:56 Administrator-09 阅读(6) 评论(0) 推荐(0) 编辑