10.13做题笔记
[CSP-S 2022] 策略游戏
看了一眼发现就是分讨一下,然后维护四个东西:最大,最小,大于零的最小,小于零的最大。
然后经过杰哥提醒,发现分讨太愚蠢了,可以把四个东西先拿下来,枚举小 L 取的,然后小 Q 选择一个使答案最小的,然后找个最大的。
P9755 [CSP-S 2023] 种树
先推式子发现好像要二分,然后看怎么 check。
经过思考和讨论,发现可以对于每个点二分能在当前时间满足条件的最晚种下时间。
然后我们考虑知道了这个,那么我们贪心地想,我要优先满足那些最小的,而这些点可能依赖其祖先,所以我们先 dfs 一下,然后贪心地去取【子树内的最小 最早种下时间】最小的那一个点,用优先队列维护即可。
P7915 [CSP-S 2021] 回文
我这个长度为 2n 的排列中,我称相同的两个数互为“对应的数”。
那么我连续取两个数,他们对应的数要么是连续的,要么是中间夹着所有之前取过的数。
那我考虑我可以直接 dfs,或者我们可以先取一个左端点或右端点,然后从端点和其对应的点进行扩展。
感觉这是一个回文的套路,就是双向地去搜,然后你并不是很需要知道路径是什么,只需要知道一个路径是可行的,并且记录这个路径的两个端点。(比如:Construct a Palindrome)。

浙公网安备 33010602011771号