ARC156E Non-Adjacent Matching 题解

AT_arc156_e [ARC156E] Non-Adjacent Matching

很厉害的一道 DP。

首先转化限制,首先显然需要有 \(2\mid k\)。主要是最后一条限制,转化为对于任意 \(i\) 都有 \(2(X_i+X_{i+1})\le k\)。然后要求这个东西,考虑容斥。显然如果存在一个 \(p\) 出现了 \(2(X_p+X_{p+1})>k\),这样的 \(p\) 肯定不超过 \(2\) 组,并且一定是相邻的。所以分别求出无限制、钦定一组 \(p\) 和钦定两组 \(p\) 的答案,若分别记为 \(A,B,C\),则最终答案就是 \(A-B+C\)

第一种:无限制的情况。相当于求出给一个数列的每个元素赋成 \([0,m]\) 之间的整数,求最终和 \(\le K\) 且为奇数的方案数。考虑先枚举 \(k\),剩下的部分考虑二项式反演。因为我们相当于求恰好有 \(0\) 个数 \(>m\) 的方案数,于是二项式反演转化为求钦定 \(i\) 个数 \(>m\) 而剩下的随意安排的方案数。插板法,得到最终的公式为

\[\sum_{k=0}^K[2\mid k]\sum_{i=0}^{\min(n,\frac k{m+1})}(-1)^i\binom ni\binom{k-i(m+1)+n-1}{n-1} \]

交换求和顺序得

\[\sum_{i=0}^{\min(n,\frac K{m+1})}(-1)^i\binom ni\sum_{k=i(m+1)}^K[2\mid k]\binom{k-i(m+1)+n-1}{n-1} \]

发现后面的组合数实际上是下指标不变、上指标的一段前缀和。那么分奇偶预处理组合数前缀和即可。

第二种:钦定一组 \(p\) 的情况。发现 \(p\) 在不同位置的情况是等价的,于是我们计算时无需考虑位置,只需在最后 \(\times n\) 即可。考虑枚举 \(X_p+X_{p+1}\)\(k-X_p-X_{p+1}\),然后统计这种情况下的方案数。设我们要枚举的两个数分别为 \(x\)\(y\)。分别考虑:给定 \(x\) 时,\(X_p\)\(X_{p+1}\) 的取值有 \(\min(x+1,2m-x+1)\) 种情况;给定 \(y\) 时,相当于要求给一个长度为 \(n-2\) 的数列每个数赋 \([0,m]\) 使得总和为 \(y\),可以简单背包 DP 处理。

第三种:钦定两组 \(p\) 的情况。发现此时 \(p\) 在不同位置依然是等价的,计算时仍然无需考虑位置。考虑枚举 \(X_p\) 和 \(k-X_{p-1}-X_p-X_{p+1}\),分别记为 \(x,y\)。仍然考虑给定 \(x\) 和 \(y\) 时的方案数。\(x\) 给定时,它的方案数显然为 \(1\)\(y\) 给定时,直接调用第二种里 DP 计算的答案;然后需要算此时 \(X_{p-1}\) 和 \(X_{p+1}\) 有多少种取值,为方便,考虑记为 \(a,b\)。发现能刻画出如下限制:\(a+b+x+y\le K\)\(2\mid(a+b+x+y)\)\(a+x>b+y\)\(b+x>a+y\)。后两个条件可以简化为 \(|a-b|>y-x\)。此时不难发现,给定 \(x,y\) 时,\(a,b\) 的方案数类似二维偏序,然后总和为奇数的条件就依然分奇偶性考虑,做二维前缀和即可。

posted @ 2026-01-16 17:08  D3509  阅读(1)  评论(0)    收藏  举报