20171022

T1,水题

T2,想到了70分做法,其实1,2串已经给了O(n)验证的提示,然后我们二分一个答案,然后就可以把大于它的标成1,剩下的标成2,然后验证答案,若答案为1,那么将右边界左移,反之左端点右移; 注意一下边界就可以得到答案,

T3,树剖+线段树,我差在了以下两点:

1、没有分析出来当有合法方案时,一条可删除的路径上,只能有一条边被覆盖了一次,因为如果有多条的话,这条路径就占用了其他路径的空间(每一条边都必须被删一次),所以每次先判断整个线段树的最小值是不是1,不是的话不合法,然后找到一位置,将其设为INF,然后然会覆盖他的路径的编号

2、就是怎么处理覆盖一条边的路径的编号,就是在用一个变量,维护一条边上覆盖它的路径的编号和,然后覆盖数和编号和同时处理,当一个点的覆盖数为1时,那么他的编号和就对应一条路径,然后就可以处理了

T3爆零了,应该多拿一些暴力分

posted @ 2017-10-23 06:15  Nawox  阅读(114)  评论(0编辑  收藏  举报