20230921
20230921 NOIP#12总结
时间安排
7:55~8:20
看 \(A,B,C,D\) ,\(C\) 一点不会,其它感觉都有暴力。
8:20~9:50
写三道题的暴力。
9:50~10:35
\(C\) 会了第一档,写了。
10:35~11:20
想不到别的了,写点乱搞 \(A\) 和 \(C\) 。(虽然最后一分都没搞到
11:20~11:50
看暴力的时候突然想到了 \(B\) 的下一档做法,写了。
11:50~11:55
检查一下文件交题。
总结反思
- 记得检查文件的时候一起看一眼代码和题是否对应
题解
A.数论
枚举最大公约数 \(d\) ,将 \(n\) 开 \(d\) 次方根,看附近整数的 \(d\) 次方是否为 \(n\)。
B.DP
\([i,j]\) 物品可以一起拿的条件是 \(r_i\geq l_j\) 且 \(j-i+1\leq k\),\(n^2\) 预处理 \([i,j]\) 天的最小代价,以物品为状态 \(DP\) ,花费为 \(f_{l_j\ ,r_i}\)
C.数列转图论
以每一个点做水平竖直两条直线将平面分成四份,将其极大的不含坏点每个矩阵分别对应建立“入点”和“出点”,“出点”向“入点”连边,权为 \(a[i][j]\) ,跑 \(dijkstra\) 即可。
D.猫树(80)/退背包(100)
猫树 逐层处理跨过 \(mid\) 的询问,从 \(mid\) 分别向左右两边做 \(0/1\) 背包。
退背包 记 \(f_{i\ ,j}\) 为往空背包中添加到 \(i\) 物品为 \(j\) 体积,\(g_{i\ ,j}\) 为往空背包中删除到 \(i\) 物品剩 \(j\) 体积。
答案为:
\[\sum_{i=0}^m g_{l-1\ ,i}\times f_{r\ ,m-i}
\]