Loading

摘要: 容斥系数大神的含金量。 首先考虑 \([f(P) = f(Q)]\) 一看就不是很好办,我们需要容斥,容斥出来的结果是: \[[f(P) = f(Q)] = \sum_{S \subseteq P} \sum_{T\subseteq Q} 2^{|S \cap T|} (-1)^{|S| + |T| 阅读全文
posted @ 2025-12-22 21:27 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 想清楚了就真不难,个人认为比追忆略简单一点。 首先发现这个操作本质上就是告诉你可以合并一些数,感受一下会发现最后相当于保留一些数,使得每个数都能由一段区间转移过来,且这个区间内的数的贡献形式是 +-+-... 依次类推的。 接下来一个比较重要的观察是假设对于一个位置 \(x\),由区间 \([l, 阅读全文
posted @ 2025-12-22 20:20 Alexande 阅读(11) 评论(0) 推荐(0)
摘要: hash: #include <bits/stdc++.h> using namespace std; // #define int long long #define fir first #define sec second #define mkp make_pair #define pb pus 阅读全文
posted @ 2025-12-22 17:30 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 首先这种题目肯定要考虑一下 \(x, y\) 在同一连通块内的充要条件,比较形式化的刻画是将笛卡尔树划分成若干左链。 第一点就是 \(p_x < p_y\),不满足这个那么绝对不在同一个左链里了,毕竟在同一个左链里的必要条件是满足严格偏序关系。 第二点是中间不能有数比 \(p_y\) 还大,不然肯定 阅读全文
posted @ 2025-12-22 16:44 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 不是使用 hint 自动机把我创飞了. 首先原本是想相邻两个数如果想要除完之后相同或者连续则 \(t\) 必定是一段区间,然后后面不知道干啥. 正确解法是发现 \(0 \le t < m\) 时那么 \(\frac{a_i + t}{m}\) 最多只会有两种值,我们使用线段树维护全局答案,那么每次 阅读全文
posted @ 2025-12-22 15:36 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 首先列出一个 DP 转移式子,发现是可以简单 \(O(n^2)\) 做的. 发现是恰好取满 \(k\) 是最优的,恰好让我们想到 wqs 二分,某些细节的地方需要调整一下,不过总体来说并不困难就是了. 阅读全文
posted @ 2025-12-22 15:00 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 这种最短路题目做出老茧了。 首先题目肯定是从后往前做,不然你没法做,设 \(dis_i\) 表示从 \(i \to n\) 的答案,那么对于一个点 \(x\) 的所有出边 \(v\),如果想要取到 \(dis_v + 1\) 那么就必须把 \(> dis_v\) 的都给办掉,这个时候花费一些操作,然 阅读全文
posted @ 2025-12-22 08:34 Alexande 阅读(5) 评论(0) 推荐(0)