摘要: Luogu CF 首先如果原图不连通显然不合法,否则我们有一个显然的想法:从一个点开始 DFS,如果一个点周围没有点被染色,就将它染色。 为什么这样是对的呢?每个点有两种情况: 这个点被染色,那么它一定和其父亲联通,而父亲未被染色,所以它一定与另一个被染色的点联通。 否则,它显然也一定与一个染色了的 阅读全文
posted @ 2025-07-21 19:09 FugiPig 阅读(5) 评论(0) 推荐(0)
摘要: Luogu 我们考虑计算 \(\bigoplus_{v\in son(u)}val(v)\) 来计算 \(val(u)\),那么就需要计算将 \(u\) 子树中所有点加 \(1\) 会导致哪些二进制位被取反。 当然我们可以使用 01-trie 整体加 \(1\),但这里还有一种神秘的做法。 发现给一 阅读全文
posted @ 2025-07-21 18:51 FugiPig 阅读(12) 评论(0) 推荐(0)
摘要: Luogu CF 考虑将 \(i-n\le a_i\le i-1\) 的两个 \(i\) 转化成一个,有: \[1\le i-a_i\le n \]设 \(b_i=i-a_i\),则因为 \(\sum_{i\in S}a_i=0\),所以 \(\sum_{i\in S}(i-b_i)=0\)。发现 阅读全文
posted @ 2025-07-21 15:03 FugiPig 阅读(10) 评论(0) 推荐(0)
摘要: Luogu AT 可以发现 \(1\) 很重要,因为 \(1+1\le所有其他数\),考虑找到 \(1\)。 通过双指针可 \(O(n)\) 找到 \(1\),维护当前猜想的答案 \(x\),依次遍历每个位置,如果 \(2P_x>P_i\),说明 \(x\) 一定不合法,于是令 \(x\gets i 阅读全文
posted @ 2025-07-21 14:20 FugiPig 阅读(8) 评论(0) 推荐(0)
摘要: Luogu CF 注意到 \(3n\) 是一个很好的性质,但是不好从点入手。 考虑从边入手,思考如何找匹配。先假设随便找一个极大的匹配 \(S\),若 \(|S|\ge n\),那么就得到一组解;否则通过惊人的注意力可以发现这 \(|S|\) 条边占用了 \(2|S|<2n\) 个点,注意到一共有 阅读全文
posted @ 2025-07-21 13:58 FugiPig 阅读(20) 评论(0) 推荐(0)
摘要: 由于 \(n\) 只有 \(100\),考虑 \(O(n^3)\) 做法,用 \(O(n^2)\) 时间确定一个位置。 发现当前的 \(lcm\) 已经确定,所以确定最后一个位置的限制显然比确定其他位置更少。于是我们可以通过枚举,用 \(O(n^2\log V)\) 的时间确定这个数 \(x\)。 阅读全文
posted @ 2025-07-21 13:51 FugiPig 阅读(4) 评论(0) 推荐(0)
摘要: 显然对每个点跑一次最短路不现实,我们考虑缩小每个点最短路的规模,而我们又是在一个矩形上,因而考虑分治。 由于题目中的限制是 \(n\times m\le 2\times 10^4\),所以 \(n\) 和 \(m\) 中的较小值 \(\le\sqrt{nm}<150\),我们考虑对矩形的长边进行分治 阅读全文
posted @ 2025-07-17 16:44 FugiPig 阅读(15) 评论(0) 推荐(0)
摘要: link 发现暴力没什么前途,考虑一种很甜筒的做法,对每个国家进行二分,然后处理每场陨石雨。 显然这样复杂度会慢很多,但是可以发现这些国家可以一起二分,即整体二分。设 \(solve(country,l,r)\) 函数处理二分的国家集合为 \(country\),答案在区间 \([l,r]\)中。 阅读全文
posted @ 2025-07-13 20:50 FugiPig 阅读(15) 评论(0) 推荐(0)
摘要: CF Luogu 见到强制在线,考虑用可持久化线段树维护。 假如以 dfs 序作为时间维,深度为第二维来可持久化,发现最小值不具有可减性,无法处理。 进而我们发现,一旦确定了 dfs 序的区间,那么只需要深度 \(\le k\) 即可,因为其祖先显然不在子树中,也就是说深度是一个前缀。所以考虑以深度 阅读全文
posted @ 2025-07-13 17:06 FugiPig 阅读(17) 评论(0) 推荐(0)
摘要: link 考虑将每个点存为连接 \((0,0)\) 和 \((i,H_i)\) 的线段的斜率,那么每个可以被看到的点的斜率必须大于它左侧所有点的斜率。 所以我们就要统计有多少个点的斜率是前缀最大值,考虑线段树。 设 \(m_u\) 表示 \(u\) 区间的最大值,\(f(u)\) 表示 \(u\) 阅读全文
posted @ 2025-07-12 18:11 FugiPig 阅读(18) 评论(0) 推荐(0)