做题记录 25.8.16
\(\textcolor{purple}\odot\) CF1578A Anti-Tetris
将插入转化为删除,每次选择一个尝试移回第一行,若不存在能移回的则无解,否则删去
时间复杂度 \(O(n^3m^3)\),常数极小
\(\textcolor{purple}\odot\) CF1575M Managing Telephone Poles
依次考虑每一行,对于一行来说,任意一列只有最靠近当前行的点有用,令第 \(k\) 列最靠近当前行的点到当前行的距离为 \(d_k\),则当前行第 \(i\) 个点的答案为 \(\min_k ((i-k)^2+d_k^2)=i^2+\min_k (d_k^2+k^2-2ik)\)
预处理凸包后,\(i\) 扫描的同时在凸包上双指针即可
时间复杂度 \(O(nm)\)
\(\textcolor{purple}\odot\) CF1575E Eye-Pleasing City Park Tour
点分治加前缀和优化即可做到 \(O(n\log n)\)
\(\textcolor{purple}\odot\) P1231 教辅的组成
左中右三部分,左侧为练习册,中间为书,右侧为答案,分别连边,中间每本书拆为两个点限制匹配次数,最大流即可
时间复杂度 \(O\left((n+m)\min\left(\sqrt{n+m},n^{\frac23}\right)\right)\),其中 \(n=n_1+n_3+n_3,m=m_1+m_3\)
\(\textcolor{blue}\odot\) P3219 [HNOI2012] 三角形覆盖问题
扫描线,对于每组 \((x,y,d)\),在 \(x\) 和 \(x+d\) 处断开
则每块内都是若干上下都触到边界的直角梯形,用总面积减去中间每块空白的贡献即可得到答案,预先对所有三角形排序,则每块可以 \(O(n)\) 解决
时间复杂度 \(O(n^2)\)
相似题:\(\purple\odot\) P1222 三角形 \(\quad\) 代码
\(\textcolor{purple}\odot\) P1235 血缘关系
令 \(f_{a,b}\) 表示 \(a\) 和 \(b\) 之间的相似程度
若 \(a=b\) 则 \(f_{a,b}=1\),若 \(a,b\) 都无祖先则 \(f_{a,b}=0\),否则设 \(a\) 的深度不小于 \(b\) 的深度(深度定义为无祖先的点到当前点的距离的最小值),设 \(a\) 的两个祖先为 \(u,v\),转移为 \(f_{a,b}=\frac12(f_{u,b}+f_{v,b})\)
需要高精度浮点数
时间复杂度 \(O(n^3+qn^2)\)(若使用十进制浮点数,则时间复杂度 \(O(n^3+qn)\))

浙公网安备 33010602011771号