10.13做题笔记

[CSP-S 2022] 策略游戏

看了一眼发现就是分讨一下,然后维护四个东西:最大,最小,大于零的最小,小于零的最大。

然后经过杰哥提醒,发现分讨太愚蠢了,可以把四个东西先拿下来,枚举小 L 取的,然后小 Q 选择一个使答案最小的,然后找个最大的。

P9755 [CSP-S 2023] 种树

先推式子发现好像要二分,然后看怎么 check。

经过思考和讨论,发现可以对于每个点二分能在当前时间满足条件的最晚种下时间。

然后我们考虑知道了这个,那么我们贪心地想,我要优先满足那些最小的,而这些点可能依赖其祖先,所以我们先 dfs 一下,然后贪心地去取【子树内的最小 最早种下时间】最小的那一个点,用优先队列维护即可。

P7915 [CSP-S 2021] 回文

我这个长度为 2n 的排列中,我称相同的两个数互为“对应的数”。
那么我连续取两个数,他们对应的数要么是连续的,要么是中间夹着所有之前取过的数。

那我考虑我可以直接 dfs,或者我们可以先取一个左端点或右端点,然后从端点和其对应的点进行扩展。

感觉这是一个回文的套路,就是双向地去搜,然后你并不是很需要知道路径是什么,只需要知道一个路径是可行的,并且记录这个路径的两个端点。(比如:Construct a Palindrome)。

posted @ 2025-10-13 20:03  yanbinmu  阅读(4)  评论(0)    收藏  举报