2025.8.24 闲话

抽象容斥方法

歌:MEGA TSKR - かめりあ feat. ななひら .


(下述大概不是合式公式变换,而倾向于普通代数式变换)

三角形数点

给你 \(n\) 个点 . \(q\) 次询问,每次给 \(x,y,d\),问有多少点 \((a,b)\) 满足 \(x\le a,\,y\le b,\,a+b\le x+y+d\) .

每个点独立,对于一个点来说把三个条件看成 \(A,A',A''\),不满足条件 \(B,B',B''\),无限制 \(C=A+B,\,C'=A'+B',\,C''=A''+B''\) .

想求 \(AA'A''=(C-B)(C'-B')(C''-B'')\),拆成一堆式子之后带 \(C(')(')\) 的都是不超过 2 维数点,全是 \(B\) 的那一项肯定不满足,这样就可以做了 .

时间复杂度 \(O(n\log n)\) .

AGC060D

给个 \(n\),问有多少排列对 \((p,q)\) 满足对于每个 \(1\le i<n\) 都有 \(p_i<p_{i+1}\iff q_i<q_{i+1}\) .

对于第 \(i\) 位令 \(A_i=[p_i<p_{i+1}],\,B_i=[p_i>p_{i+1}],\,A'_i=[q_i<q_{i+1}],\,B'_i=[q_i>q_{i+1}]\) .

想求

\[\begin{aligned}\prod_{i=1}^{n-1}(A_iA'_i+B_iB'_i)&=\prod_{i=1}^{n-1}(A_iA'_i+(C_i-A_i)(C'_i-A'_i))\\&=\prod_{i=1}^{n-1}(C_iC'_i-A_iC'_i-C_iA'_i+2A_iA'_i)\\&=\dfrac1{2^{n-1}}\prod_{i=1}^{n-1}(C_iC'_i+(C_i-2A_i)(C'_i-2A'_i))\end{aligned} \]

由于 \(C_iC'_i\) 相当于没有任何限制,那么就相当于对 \((C_i-2A_i)(C'_i-2A'_i)\) 做某种 SEQ 变换 .

\((C_i-2A_i)(C'_i-2A'_i)\) 两维独立,对于 \(C_i-2A_i\) 可以用类似的方法对 \(-2A_i\) 做 SEQ 得到 .

时间复杂度 \(O(n\log n)\)(卷积).

BTW 那个最新的 NOI 的 D2T2 (集合) 应该也是能用的(

posted @ 2025-08-24 09:37  yspm  阅读(189)  评论(13)    收藏  举报
😅​