2025.7.4 NOI 模拟赛 题解
T1《明天,我会死去,而你将重生》(jimi) \(\quad\) LOJ #6502. 「雅礼集训 2018 Day4」Divide
题意
给定 \(a_{1\sim n}\),将其划分为两个集合 \(S_1,S_2\),求出 \(\sum_{u\in S_1,v\in S_2}[u+v\ge m]\) 的最大值及达到最大值的方案数,\(n\le2000,m\le2\times10^6,a_i\le10^6\)
分析
显然 \(a\) 的顺序不影响答案,因此尝试重排 \(a\),使得对于每个 \(a_i\),\(\forall 1\le j<i\),\([a_j+a_i\ge m]\) 值都相等
设原序列为 \(a'\),重排后的为 \(a\),先将 \(a'\) 从小到大排序
若 \(a'_1+a'_n\ge m\),则 \(\forall i,a'_i+a'_n\ge m\),将 \(a'_n\) 放到 \(a\) 的最后一个位置,然后递归考虑 \(a'_{1\sim n-1}\)
否则 \(\forall i,a'_1+a'_i<m\),将 \(a'_1\) 放到 \(a\) 的最后一个位置,然后递归考虑 \(a'_{2\sim n}\)
容易 \(O(n\log n)\) 重排
然后在重排后的数组 \(a\) 上 \(dp\),令 \(f_{i,j}\) 表示 \(a_{1\sim i}\) 划分为 \(A,B\),其中 \(|A|=j\),\(\sum_{u\in A,v\in B}[u+v\ge m]\) 的最大值(同时记录方案)
转移为
答案为 \(\sum_j f_{n,j}\)
时间复杂度 \(O(n^2)\),空间复杂度容易做到 \(O(n)\)
T2 《只要长得可爱,即使是杀手你也喜欢吗》(hendrix) \(\quad\) LOJ #6516. 「雅礼集训 2018 Day11」进攻!
题意
给定一个 \(n\times m\) 的 \(0/1\) 矩阵,从中依次选择 \(k\) 个矩形,满足选出的矩形中不含 \(0\),求所有 \(\left(\frac{n(n+1)m(m+1)}4\right)^k\) 种方案中,选出的矩形的交不为空的方案数,\(n,m\le2000\)
分析
令 \(c_{i,j}\) 表示枚举所有长为 \(i\),宽为 \(j\) 的子矩形,求出该矩形为选出的 \(k\) 个矩形并的子矩形的方案数,并求和
则答案为 \(c_{1,1}+c_{2,2}-c_{2,1}-c_{1,2}\),因为矩形并为长 \(h\) 宽 \(w\) 的矩形的方案在 \(c_{1,1}\) 中统计了 \(hw\) 次,在 \(c_{2,2}\) 中统计了 \((h-1)(w-1)\) 次,在 \(c_{2,1}\) 中统计了 \((h-1)w\) 次,在 \(c_{1,2}\) 中统计了 \(h(w-1)\) 次,计入答案 \(hw+(h-1)(w-1)-(h-1)w-h(w-1)=1\) 次
考虑如何求出一个 \(c_{lx,ly}\),其中 \(lx,ly\in\{1,2\}\)
令 \(cnt_{x,y}\) 表示不含 \(0\) 且包含矩形 \((x\sim x+lx-1,y\sim y+ly-1)\) 的矩形数量,则 \(c_{lx,ly}=\sum_{(x,y)}cnt_{x,y}^k\)
一个矩形 \((u\sim d,l\sim r)\) 会令 \(cnt_{u\sim d-lx+1,l\sim r-ly+1}\) 加一,令 \(cnt'\) 为 \(cnt\) 的二维差分数组,则会令 \(cnt'_{u,l}\) 和 \(cnt'_{d-lx+2,r-ly+2}\) 加一,\(cnt'_{u,r-ly+2},cnt'_{d-lx+2,l}\) 减一
得到 \(cnt'\) 后容易得到 \(cnt\),一个矩形对 \(cnt'\) 的四种影响计算方式类似,以下每个合法矩形 \((u\sim d,l\sim r)\) 令 \(cnt'_{u,l}\) 加一
预处理 \(dw_{x,y}\) 表示从 \((x,y)\) 向下至多经过的连续黑色格子数量,容易 \(O(nm)\) 预处理
枚举 \(u\),从右向左枚举 \(l\),维护一个栈,栈中依次保存 \(dw_{u,l},\min(dw_{u,l},dw_{u,l+1}),\min(dw_{u,l},dw_{u,l+1},dw_{u,l+2}),\cdots\),则对 \(cnt'\) 的增量为目前为止栈中值的总和
分段维护栈中的值,容易 \(O(nm)\) 求出 \(cnt'\)
总时间复杂度 \(O(nm\log k)\)
T3 《爱好赌球的少年与被夺去的壹佰元》(experience) \(\quad\) LOJ #6518. 「雅礼集训 2018 Day11」序列
比赛结果
\(30+50+30\),\(\text{rk}6\)

浙公网安备 33010602011771号