10.21
10.21 总结
上午7:00-8:20
订正SCP-S T2 divide
> 题目链接:divide
思路回顾+总结
首先看到这道题手玩了几遍样例,容易发现一组方案的每个点应在同一深度(容易证明如果存在一个点在其它层并集一定无法完全包括)
既然要用到深度,跑一次DFS把每个点的深度存下来
继续观察,并集的下界由于点都在同一层已经固定,那么下面决定并集是否相同的点就在于上界,所以我们给进一下DFS,存下每个点子孙的最深度
既然是按层讨论,我们就把每一层的所有点记录下来。
现在一层假定有 $m$ 个点,扫一遍后得到下界最浅(原因:最浅才能保证其他点的下界一定包括这个深度),记录下界最浅的点有 $t$ 个
不难想到,当$m=0$时就可以$break$了,因为都没有点深到这个深度,接下来一定不可能有点。
同理,当$m<k$时,同一层无法凑齐$k$个数,故不可以,$continue$。
在$m==k$时,同一层放满后剩下的第$k+1$棵树必定是不包含的,故不可以,$continue$
在t=1时,显然可以注意到也是不可以的,因为其他的并集都比最浅的深一定包含比最浅的点深的度
以上是考场清晰部分,下面虽然考场上都想到了,但脑子太糊了成依托没写出来
上午剩余时间
打了一场zhengruioi 把贪心做成了模拟分类讨论()

浙公网安备 33010602011771号