摘要: 来个愉快的扫描线。 我们先按照题意,把不合法的情况画到平面直角坐标系上: 所有合法的情况都不应该出现在该直线上。另外,题目保证 ui​<vi​,所以所有的合法点都应该出现在直线 y=x 上方。 所有的合法的点出现的地方可以分成 6 个部分。我们进行 3 次扫描线: 沿 x 正方向,处理每个点 ➀➁➂ 阅读全文
posted @ 2024-03-10 18:02 MrPython 阅读(9) 评论(0) 推荐(0)
摘要: 分块好闪,拜谢分块! 我们需要支持三种操作: 单点修改 查询区间最/次大值 查询区间内元素出现的数量 对于每个块,我们用数组存下数据,记录这个块的最大和次大值,再用一个 unordered_map 存下块中某个数出现的次数。 单点修改时,同步操作 unordered_map 的数据,再重新计算整个块 阅读全文
posted @ 2024-03-05 12:08 MrPython 阅读(4) 评论(0) 推荐(0)
摘要: 注意:本题解的点编号从 0 开始。 作为一个最短路题还是很有意思的。 这道题难点在于让时光倒流,考虑从 N−1 出发往各个点走。反向建图,之后就可以用 dijkstra 算法做。 具体一些,先将 f 初始化为 −∞,再将 f(N−1) 初始化为 +∞ (显然从自己到自己无论多晚走都可以)。 再考虑假 阅读全文
posted @ 2024-02-25 09:33 MrPython 阅读(8) 评论(0) 推荐(0)
摘要: 在我的代码中,下标一般从 0 开始,大部分函数/类的方法最寻左闭右开原则。 我们维护一个布尔数组 f,fi​ 表示 Si​ 与 Si−1​ 是否相等,相等为 1,不相等为 0。至于 f 的首项,他对答案不会产生影响,设置成什么都无所谓。 对于操作二,显然 S 中区间 [L+1,R] 元素全部与它前面 阅读全文
posted @ 2024-02-19 19:30 MrPython 阅读(6) 评论(0) 推荐(0)
摘要: 好一个 DP 套 DP!这里必须要锐评一下题面太抽象读题都花我 20 min 从一个点 p 删除一个棋子后,你可以选择与他直接相连的一些点放上棋子,不过要求被选择点权值的和小于 p 的权值 wp​。显然,如果想要选择 p 的某个相邻点 q,一定有 wp​>wq​ (单个点的权值都超了肯定没法选)。凭 阅读全文
posted @ 2024-02-19 17:13 MrPython 阅读(25) 评论(0) 推荐(0)
摘要: 趣味贪心题。 本题要把数字反转或拼接起来,而且没有对数字的计算操作,则可以从字符串的角度考虑本题。判断游戏最后剩下的数字 ≥10m,就是看游戏最后剩下的字符串的长度 ∣S∣>m。 Anna 应该可以做点什么,让字符串变短。她选择了一个数字反转之后,会丢掉前导零,此时字符串可能会变短一些(例如 158 阅读全文
posted @ 2024-02-15 00:36 MrPython 阅读(8) 评论(0) 推荐(0)
摘要: 这个题还算挺套路的。 我的思路如下: tarjan 找到所有非割边 按照这些边重新建图 在这些边中找到权值最小的边 以这条边的一个端点为起点,另一个为终点,跑 bfs 找环 相信各位大佬还有更好的思路,但是我这应该是不太需要脑子的 #include<bits/extc++.h> using name 阅读全文
posted @ 2024-02-11 11:27 MrPython 阅读(10) 评论(0) 推荐(0)
摘要: ABC 没题出了吗……全是大典 用邻接矩阵存下图 跑一遍 floyd 求出任意两点间的距离 同 P1433 吃奶酪。 吐槽结束,还是具体说说状压怎么做吧。 设计状态:F(i,j) 表示当前在 j 点,状态为 i 时代价的最小值。其中状态用二进制压位,第 p 个二进制位为 1 表示已经访问过 p 点, 阅读全文
posted @ 2024-01-30 15:50 MrPython 阅读(9) 评论(0) 推荐(0)
摘要: 阅前注意:本文下标均从 0 开始,代码通常遵循“左闭右开”规则。 题意简述 在圆上有 N 条弦(不会共用一个端点),判断是否有任意两条弦相交。 思路简析 圆上问题不好想,不如转换成 OIer 们喜闻乐见的序列问题。将圆从 2N−1 号点与 0 号点间断开,拉直,让它变成区间问题。 例如: 可以转化成 阅读全文
posted @ 2024-01-30 15:30 MrPython 阅读(39) 评论(0) 推荐(0)
摘要: 这篇题解使用了数学方法,O(n) 解决本题。 思路 首先,容易发现操作一最多进行一次,之后的操作一均可用若干操作二等价代替。具体证明请参考 官方题解,这里不再赘述。 在本题解中,下标从 0 开始,且所有的 i 都保证 i 为整数且 0≤i<n。 让我们重点关注 a 数组的变化过程中的 2 次——对 阅读全文
posted @ 2023-10-08 19:18 MrPython 阅读(17) 评论(0) 推荐(0)