07 2022 档案
摘要:传送门: Divide Square 思路: 不难发现分区数与线段的交点数有关(不包括与边界的交点)。初始时分区数为 1,每多 1 个交点,分区数就 +1,另外,每有一条横跨整个正方形的线,分区数也 +1。所以关键在于如何求出交点数,可以用扫描线处理,从下往上扫描,用树状数组维护扫描线与竖线的交点,
阅读全文
摘要:传送门: Cow Confinement 思路: 先考虑一个更简单的问题,如果没有围栏的限制,只有花和牛。对于这个简化的问题,由于牛只可以向 x 或 y 增大的方向移动,所以我们可以用一条平行于 x 轴的扫描线,按 y 轴从大到小扫描: 如果遇到花,就在数状数组对应位置权值加 1 如果遇到牛,查询 [
阅读全文
摘要:传送门: 圆的异或并 思路: 设最外层的圆的层级为 1 级,根据容斥关系不难得出最终所求的面积为:奇数层的圆面积之和 - 偶数层的面积之和,所以关键是如何求每个圆的层级。 假设我们在图上任意画一条平行于 x 轴的直线,与图上部分圆相交,这些交点一定是成对出现的,而且由于题目中的圆一定不相交,这些成对
阅读全文
摘要:传送门: 窗口的星星 思路: 网上多数题解思路都是将点(星星)转化为矩阵处理,这里讲一下我的思路。 首先考虑简单化的问题,如果窗口只有宽度而没有高度限制,我们可以将同一 x 坐标的点权加和,转化为一维问题,即给定一个一维数组 a[],求长度为 w 的连续子数组最大和为多少。 解决这个问题的方法有许多
阅读全文
摘要:传送门: Turing Tree 题意: 给定长度为 n 的数组以及 q 次询问,每次询问给出一对 l、r,输出 [l, r] 区间上所有互不相同的元素的总和 思路: 考虑一个简化的问题,假如询问的区间右端点固定为 n,这时我们可以对原数组进行一定的处理,即只保留每个数最后一次出现的位置,其余位置清
阅读全文
摘要:传送门: Mark and Lightbulbs 题意: 对于一个 01 字符串,如果与某个比特位相邻的两个比特不相等,就可以翻转该比特位,即如果 s[i-1] != s[i+1] 就可以翻转 s[i]。现给定两个 01 字符串 s 和 t,问 s 能否转化为 t,最少操作数是多少。 思路: 如果将
阅读全文

浙公网安备 33010602011771号