2025.8.31 炼石计划 week1 动规 讲课笔记
记录:6 \(\quad\) 1,2,12 \(\quad\) 4 \(\quad\) 5,7 \(\quad\) 8,10 \(\quad\) 9 \(\quad\) 11
题单:
- [x] https://loj.ac/p/4261
- [x] https://loj.ac/p/4257
- [x] https://qoj.ac/contest/1774/problem/9222
- [x] https://www.luogu.com.cn/problem/P10145
- [x] https://www.luogu.com.cn/problem/P5979
- [x] https://qoj.ac/contest/1784/problem/9254
- [x] https://uoj.ac/problem/37
- [x] https://qoj.ac/contest/1399/problem/7645
- [x] https://qoj.ac/contest/1399/problem/7644
- [x] https://qoj.ac/contest/1398/problem/7606
- [x] https://qoj.ac/contest/1207/problem/6331
- [x] https://www.luogu.com.cn/problem/P3554
T3 QOJ #9222. Price Combo
显然将二元组序列分为两部分,分别排序后取 \(a\) 第奇数大和 \(b\) 第奇数大求和即为答案
考虑一组 \(i,j\) 满足 \(a_i\ge a_j,b_i\le b_j\),显然不可能存在 \(i\in A\) 且 \(j\in B\) 的情况,否则换成 \(j\in A,i\in B\) 更优
以 \(a\) 为横坐标,\(b\) 为纵坐标,则对于一种最优解,一定可以选择一条 \((0,0)\) 到 \((+\infty,+\infty)\) 的不降折线,折线左上方都在 \(a\) 中,右下方都在 \(b\) 中
更精确地,每个 \((a,b)\) 对应正方形 \((a\sim a+1,b\sim b+1)\),然后选择格线上的折线,将方块集分割
令 \(f_{i,j,x,y}\) 表示 \((i\sim +\infty,j\sim +\infty)\) 范围内,\((i,j)\) 到 \((+\infty,+\infty)\) 的折线,左上中数量的奇偶性为 \(x\),右下中数量奇偶性为 \(y\)(实际只需要记录前者,因为 \(i,j\) 确定后两者之和确定),该情况下的答案
考虑对 \(a,b\) 离散化,重复的离散化到不同值,即离散化后两者都是排列
令 \(x_i\),\(y_i\) 表示离散化后点集为 \((x_i,i)\) 和 \((i,y_i)\), \(wa_i\) 为 \((i,y_i)\) 的原横坐标,\(wb_i\) 为原 \((x_i,i)\) 的纵坐标,则转移为
容易做到 \(O(n^2)\)
去掉第一维,转化为 \(i\) 从 \(n\) 到 \(0\),枚举 \(j=n\sim 1\),\(p\in\{0,1\}\),若 \(x_j\le i\) 则 \(f_{j-1,p,0}\gets f_{j,p,0}, f_{j-1,p,1}\gets f_{j,p,1}\),否则 \(f_{j-1,p,1}\gets f_{j,p,0}+wb_j,f_{j-1,p,0}\gets f_{j,p,1}\),若 \(i>0\) 则枚举 \(0\le j<y_i\),\(q\in\{0,1\}\),\(f_{j,0,q}\) 加上 \(wa_i\),并交换 \(f_{j,0,q}\) 和 \(f_{j,1,q}\)
第一步转移又可以进一步简化为按方程式求出 \(f_{y_i,\ast,\ast}\),只更新该位置
所有操作可以线段树实现,时间复杂度 \(O(n\log n)\),常数极大

浙公网安备 33010602011771号