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} \]

posted @ 2023-09-22 21:27  programmingysx  阅读(15)  评论(0编辑  收藏  举报