20230920
20230920 NOIP#11总结
时间安排
7:50~8:30
看 \(A,B,C,D\) 感觉都有好写的暴力。
8:30~10:10
开写四题暴力,写 \(D\) 的过程中又多想到了一档暴力。
10:10~11:50
罚坐接近两小时,多的分数愣是一点都不会.
总结反思
- 缺乏思维能力
- 想不到什么优化技巧
题解
A.叉积公式
三角形面积是否是整数,只关心坐标的奇偶性,简单排列组合。
B.特殊的完全背包
由于体积为 \(0\sim n\) 所以倒着遍历每个最多取 \(\frac{n}{i}\) 次,然后跑完全背包。
C.不知道哪类的题
钦定 \(x_{p_1}\leq x_{p_2}\leq x_{p_3}\cdots \leq x_{p_n}\),\(p\) 序列是一个 \(1\sim n\) 的排列。
根据 \(Q\) 条约束条件,对于一个约束集合 \(S\) ,则最小值一定在 \(p\) 最小处取,最大值亦然,据此可以求出每个数的取值范围 \([l_i,r_i]\),进而可以 \(2^n\) 枚举所有状态求出在此 \(p\) 序列下的一组解。
在枚举 \(p\) 序列的全排列,分别求答案,在 \(O(n!2^n)\) 的复杂度下求得答案。
D.数据结构优化 DP
设 \(f_i\) 表示考虑 \([1, i]\) 且必选 \(i\) 的最大值,\(g_i\) 表示考虑 \([i, n]\) 且必选 \(i\) 的最大值,可以用树状数组在 \(O(n\log n)\) 内求得。
易得
\[ans = \max(\max_{i\in [1,l]}\{f_i\} ,\max_{p_i \leq p_j}\{f_i + g_j\}[i \leq l][j > l + k])
\]
当 \(l\) 变为 \(l+1\) 时,\(f_l\) 会对所有位于 \(g_j,p_j\in [p_l,n]\) 产生贡献,而 \(g_{l+k-1}\) 要删除,那么这个可以在按 \(p_i\) 排序后用线段树维护即可。