摘要: 把排列写成一条路径 \(p_1\to p_2\to\cdots\to p_n\)。那么 \([p_i<p_{i+1}]\) 就是第 \(i\) 步往右走,\([p^{-1}_i<p^{-1}_{i+1}]\) 是 \(i\) 要先于 \(i+1\) 访问。 如果我们已知了 \(p^{-1}_{i}< 阅读全文
posted @ 2025-09-24 19:30 CJzdc 阅读(30) 评论(0) 推荐(0)
摘要: 操作的自由度很大,打表可以发现限制操作的位置只增不减也是对的。 考虑怎么判断一个串 \(t\) 是否合法。 观察到对于一个位置 \(i\) 满足 \(s_i=0\),想要通过操作使 \(s_i\) 变为 \(1\),只需要 \(>i\) 的位置删掉了 \(\ge c_i\) 个数。其中 \(c_i\ 阅读全文
posted @ 2025-09-18 22:10 CJzdc 阅读(18) 评论(0) 推荐(0)
摘要: 在天数 \(k\) 固定时,定义 \(p_i\) 为第 \(i\) 个连续段的起点。那么一个贪心是在保证第 \(i\) 段的 \(\max=a_{p_i}\) 时尽量最小化 \(a_{p_{i+1}}\)。于是有 \(p_{i+1}=\arg\min\limits\left\{a_j\mid p_i 阅读全文
posted @ 2025-09-17 14:31 CJzdc 阅读(29) 评论(0) 推荐(0)
摘要: 以下用 \(\texttt{LR}\) 代表 \(\texttt{()}\)。 因为我们想最小化字典序,所以每次我们删掉 \(\texttt{L}\) 时都会尽量靠右删,同理 \(\texttt{R}\) 会尽量靠左删。于是可以说明每次删除的 \(\texttt{LR}\) 其实一定相邻。 再做一些 阅读全文
posted @ 2025-09-12 09:44 CJzdc 阅读(13) 评论(0) 推荐(0)
摘要: 巧妙题,学习了。 考虑去动态添加限制。 \(f_{i,S}\) 表示点集 \(S\),我们约束了 \(\le i\) 的点的度数 \(\ge 2\),此时合法边集数。 考虑计算 \(f_{i,S}\) 和 \(f_{i-1,S}\) 的变化。 如果 \(i\) 在边集中的度数 \(=0\),那么不合 阅读全文
posted @ 2025-09-09 17:02 CJzdc 阅读(26) 评论(0) 推荐(0)
摘要: 一个暴力维护的做法 阅读全文
posted @ 2025-09-07 19:21 CJzdc 阅读(14) 评论(0) 推荐(0)
摘要: 先考虑怎么刻画序列的 \(f\)。 考虑把 w 作为 \(0\),b 作为 \(1\)。 每次我们可以删 00 或 11,最后剩下的 0101... 状物的长度除以 \(4\) 就是 \(f\) 的值。 每次删长度 \(2\) 的串,这对每个位置的奇偶性是不影响的。 考虑把奇数位取反,那么每次可以删 阅读全文
posted @ 2025-09-06 15:37 CJzdc 阅读(16) 评论(0) 推荐(0)
摘要: 有趣题。 考虑最短路径 \(S=[S_1,S_2,\cdots,S_k]\),那么代价是 \(\sum ((a_{S_i}+b_{S_{i+1}})\bmod M)\)。 考虑 \(a_i\leftarrow (M-a_i)\bmod M\),那么 \((b_{S_{i+1}}-a_{S_i})\b 阅读全文
posted @ 2025-08-31 11:18 CJzdc 阅读(3) 评论(0) 推荐(0)
摘要: 这题需要带修,考虑一些比较好维护的做法。 从小往大考虑当前值 \(v\),对于值 \(=v\) 的长为 \(c\) 的连续段,设其左右分别是 \(a,b\),设 \(d=\min(a,b)-v\)。 如果 \(2^d|c\),那么我们可以把这一段缩起来,变成一个值为 \(v+d\),长为 \(\tf 阅读全文
posted @ 2025-08-31 10:59 CJzdc 阅读(2) 评论(0) 推荐(0)
摘要: 一个暴力的想法是 \(f_i\) 表示 \(0\to i\) 的期望步数,但是可以发现这其实不好转移。因为 \(f_j\to f_i\) 时我们不知道是否经过了 \(i\)。 这个问题实际上就是我们固定了起点 \(0\),终点不固定。但是如果我们固定终点 \(0\),\(f_i\) 表示 \(i\t 阅读全文
posted @ 2025-08-25 21:18 CJzdc 阅读(6) 评论(0) 推荐(0)