摘要: \(a\) 可以重排,因此对于所有值 \(v\),其出现次数 \(c\) 将 \(n\) 划分为若干个子集。 考虑一个二分图,左部点是 \(n\) 的位,右部点是 \(y\) 的位,那么相当于对于每个左部点,在右部点选择一个集合连边。同时要求右部点的度数都要 \(\ge 1\)。此时每有一条边 \( 阅读全文
posted @ 2025-12-04 17:10 CJzdc 阅读(20) 评论(0) 推荐(1)
摘要: 好题。 阅读全文
posted @ 2025-12-03 14:55 CJzdc 阅读(45) 评论(0) 推荐(0)
摘要: 考虑如果确定了 \(a\),怎么去算 \(b\) 的方案数。 对于一次赋值 \(b_{p_i}\leftarrow p_i\),考虑钦定其为最后一次对 \(b_{a_{p_i}}\) 的修改,那么相当于把 \(a_{p_i}\) 锁定。 于是,如果当前 \(p_i=x\),那么我们可以决定是否把 \ 阅读全文
posted @ 2025-12-01 16:59 CJzdc 阅读(23) 评论(0) 推荐(0)
摘要: 首先把 \(\prod a\) 拆开,对于一个操作,它会被若干个位置所钦定。考虑对于所有有效的操作 dp。 如果我们知道了一个操作覆盖的集合,那么操作范围一定包含集合的最小和最大值。因此我们只关心集合的左右端点。 考虑对这些区间扫描线。\(f_{i,S,j}\) 表示现在扫到 \(i\),\(i-m 阅读全文
posted @ 2025-12-01 10:29 CJzdc 阅读(42) 评论(0) 推荐(0)
摘要: D1T1 Two Currencies 直接二分就好了,做的时候降智写了莫队。 https://atcoder.jp/contests/joisp2023/submissions/70864956 D1T2 Festivals in JOI Kingdom 2 考虑对答案相等的情况计数。 对时间轴扫 阅读全文
posted @ 2025-11-24 22:26 CJzdc 阅读(58) 评论(0) 推荐(1)
摘要: D1T1 Fish 3 第二个修改实际上就是要求一类操作完后序列不减。 令 \(B_i=\lfloor\frac{C_i}{D}\rfloor\),那么我们每次可以把 \(B_i\) 减 \(1\),\(C_i\le C_{i+1}\) 根据 \(C_i\bmod D\) 与 \(C_{i+1}\b 阅读全文
posted @ 2025-11-24 20:15 CJzdc 阅读(47) 评论(0) 推荐(0)
摘要: 对于任意一个点 \(i\),\(i\) 能直接到达的点 \(p\) 需要 \(a_p\ge a_i\),且 \(p\le r_i\),其中 \(r_i\) 是 \(i\) 能到的最后一个 \(<a_i\) 的位置 \(+d\)。\(r_i\) 可以按值域扫描线预处理。 对于 \(a_{v_i}\) 阅读全文
posted @ 2025-11-12 15:15 CJzdc 阅读(39) 评论(0) 推荐(0)
摘要: 为什么这题放在了 NOIP T2?自闭了…… 阅读全文
posted @ 2025-11-10 17:52 CJzdc 阅读(46) 评论(0) 推荐(0)
摘要: D1T1 Exhibition 3 一个贪心的想法是从大到小考虑所有值,每次加入最靠前的线段判断是否可行。那么要解决的问题就是用尽量少的点覆盖选中的区间。 设当前值 \(v\),有 \(cnt_v\) 个。考虑怎么判断一个新的区间可以加入,即加入后不会改变需要的点数。这个只要对于原来的状态正反各贪心 阅读全文
posted @ 2025-10-31 10:27 CJzdc 阅读(52) 评论(0) 推荐(0)
摘要: 题目的最优化的子问题是一个匹配的形式,但是转成最小割后也并不好做。事实上我们有一个简单的贪心,维护一个堆,每次在左端点加入区间,然后取出最小的右端点。 但是这样一个点上有很多区间,状态还是非常复杂。考虑进一步把策略放到每个区间上,事实上可以把所有区间按照右端点排序,然后所有区间依次尽量靠左选,这样也 阅读全文
posted @ 2025-10-10 20:02 CJzdc 阅读(29) 评论(0) 推荐(0)