CF1821F Timber
假如我已经知道了有哪些点放了树,如何判定这个点集是否合法?
这个显然,从左往右贪心,能往左倒就往左倒。
令这样得到的区间分别是 \([l_1, r_1], \cdots, [l_m,r_m]\),那么我们换个角度,通过计数这些区间的方案数来计数点集的方案数。
若 \(r_i\ge l_{i+1}-k\),那么 \(p_{i+1}\) 就只有一种方案,否则就有两种。
由于有 \(r_i=l_i+k\),改变描述形式:
对于所有满足 \(l_i - l_{i - 1} > k\) 的序列 \(l_1, \cdots, l_m\),求 \(\sum 2^{m-cnt}\)。
\(cnt\) 为 \(l_i - k > l_{i-1} + k\) 的 \(l\) 的个数。
\(l'_i \gets l_i - (i - 1)k\)。
对于所有序列 \(l'\),求 \(\sum 2^{m-cnt}\),其中 \(cnt\) 为 \(l_i-k>l_{i-1}\) 的 \(i\) 的个数(\(l'_m\le n - mk + k\))。
不妨计数 \(l_i-k\le l_{i-1}\) 的个数。
~~钦定至少有 \(x\) 个 \(i\) 满足 \(l_i-k\le l_{i-1}\),这个方案数为 ~~
rnm 好难。
钦定至少有 \(x\) 个 \(i\) 满足 \(l_i-k>l_{i-1}\),方案数为 我不想算这个**玩意了直接查看 zxx 题解吧
CF1730E Maximums and Minimums
枚举最小值 \(mn\) 与最大值 \(mx\)。
对于最大值,有 $l\in $ 一段区间,\(r \in\) 一段区间的限制。
对于最小值,同样有这种限制。
每次把这种限制的区间交起来就可以得到最后区间 \(l,r\) 的限制。
……稍等。并没有保证给出的是一个排列。
先枚举最大值,最小值的个数最多为 \(d(n)\)。
最大值已经限定了 \(l\) 和 \(r\) 都在一个区间之内。我们可以在 \(l\) 和 \(r\) 的区间内找到 \(mn\)。
然后经过一定的预处理和分讨就做完了。来锻炼一下耐心
标签:cnt,frac,sum,times,mathcal,Avalon,operatorname From: https://www.cnblogs.com/fjy666/p/18227493