Loading

上一页 1 2 3 4 5 6 7 8 ··· 37 下一页
摘要: CSP T4 究极加强版。 首先注意操作的性质,等价描述如下: 每次从 \(2n\) 到 \(1\),遇到一个 \(h_i\),如果此时后面有 \(h_j = h_i\),那么便将 \(h_i\) 减一,不断重复这个过程,然后进行下一步操作。 因为只关心后缀,所以可以从一个位置 \(i\) 将 \( 阅读全文
posted @ 2025-12-25 16:31 Alexande 阅读(15) 评论(0) 推荐(0)
摘要: 最搞笑的一集,复杂度瓶颈在预处理。 首先我们知道如果强连通变成 DAG 咋做: \[f_S = \sum_{T \subseteq} (-1)^{|T| + 1} f_{S - T} 2^{E(T, S - T)} \]这个 \(-1\) 是容斥系数,相当于将 DAG 每次分层,考虑这个容斥让问题变 阅读全文
posted @ 2025-12-25 10:40 Alexande 阅读(23) 评论(0) 推荐(0)
摘要: 首先至少都经过一次不是很好搞,我们希望转化为经过其中某一个点的最少步数期望。 不难发现两者的关系便是广义 min/max,考虑 min-max 容斥在期望意义下的可行性,有: \[E(max) = \sum_{T \subseteq S} (-1)^{|T| + 1} E(min) \]其中 max 阅读全文
posted @ 2025-12-25 08:46 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: P3870 [TJOI2009] 开关 经典问题:区间异或,区间数 \(1\)。 考虑在线段树上给出一个翻转标记 \(tag\),表示目前要不要翻转 \(0/1\),每次 pushdown 时就将标记翻转,因为操作两次等于没有操作,顺便维护一个 \(1\) 的个数即可。 P8818 [CSP-S 2 阅读全文
posted @ 2025-12-24 21:30 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 对于字符串这种对前后缀有很强性质的结构不用就是浪费了,当然也可能是回文结构这种特殊结构。 原本的结构很难描述,是 \(s[i, i + l - 1] < R (s[i + l, i + 2l - 1])\),起始点就很没有规律,对于不同的 \(l\) 甚至起始点和终止点都不一样,我们现在的目标是找到 阅读全文
posted @ 2025-12-24 21:14 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 使用主席树维护二进制位二分比较大小即可,时间复杂度 \(O(n \log^2 n)\)。 阅读全文
posted @ 2025-12-24 21:05 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 发现倒过来之后结构串的长度一定形如 \(1, 2, 3, ..., ans\),思考 DP,设 \(f_i\) 为以 \(i\) 结尾最后一个串最长是多少,发现有 \(f_{i + 1} \le f_i + 1\),因为 \(i + 1\) 的起始位置如果在 \(i\) 之前干脆把 \(i\) 的起 阅读全文
posted @ 2025-12-24 11:58 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 写不明白高维前后缀 min 的来了. 首先发现可以暴力连 \(2^k \times 2^k\) 条边,可以做到 \(O(k \times 4^k)\) 的复杂度. 但是你发现实际上有用的边只有 \(O(3^k)\) 条,这是因为取 \(and, or\) 需要满足两个数之间是子集或是超集的关系,用二 阅读全文
posted @ 2025-12-23 09:58 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 太不牛了。 首先看到要求二分图上匹配条件,想到的就是在任意完美匹配上做调整,不难证明对于两种不同的完美匹配,若一种可以调整至解,那么另一种同样也可以调整至解。 随便找出一个完美匹配,如果黑边数是偶数直接数出即可,否则,从 dinic 反悔的角度上来看(我们姑且认为每条边都是有向边且 dinic 跑完 阅读全文
posted @ 2025-12-23 08:10 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 容斥系数大神的含金量。 首先考虑 \([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)
上一页 1 2 3 4 5 6 7 8 ··· 37 下一页