赛时安排
7:50~8:10
看题面,后三道都和图、树有关
8:10~8:30
写T2,T2的暴力分二进制状压40,但是正解就不会了
8:30~9:40
感觉T4非常可写,有点像NOIP2018修建赛道
写了个二分答案,check时遍历整棵树,对于每个节点,先把来自子树中,长度大于mid的链卡掉,优先在子树中匹配,用muitiset维护,然后把剩下的一条链传上去,如果剩下不知一条链,就返回0,样例过了但是发现如果把大于mid的链卡掉就不能让其他链借助它转移,所以就不能卡掉,又打了几组发现又有问题,如果子树中完全匹配了,那么连向父亲的边权为1就会不能匹配,所以如果在子树中有两条边能匹配,且另一条边大于mid,就不让他俩匹配,把不足mid的链取max,然后传上去,记得特判在1的时候不能有边传上去,又调了一会过了,又拍了几组数据感觉问题不大
9:40~10:20
写T1的第二档,这个数据有点像区间DP,但是不知道怎么处理,所以就写了个贪心,判断如果一个区间能完全包含另一些区间,那就从那些区间中找到最小的一个用当前区间替换掉,不过被subtask卡死了,1分没有
10:20~10:30
想优化一下T2的暴力,于是想想这个范围这么小能不能模拟退火
正准备写发现我竟然忘了怎么写,又推了推性质,似乎只有一种解法,但是又打了表发现可能不止一种
10:30 ~11:10
T3一看就是DP,暴力DFS似乎没有分,只能推一推式子,想类似二维前缀和转移,一开始总是算重,忽然发现这个图好像有单调性,可以枚举分界点转移,不过对于不合法的地的处理不是很会,不知不觉就过了1个小时
11:10~11:50
想写T3的DFS,但是感觉很难写,于是就应用刚才的结论发现可以做到n!,但是一直不会处理不合法块,也只能尝试写写,样例过了但是只要有黑色块就过不去
11:40~12:10
又加强了一下T1的贪心,判断如果一个区间能完全包含另一些区间,那就从那些区间中找到最小的一个用当前区间替换掉,不过被subtask卡死了,1分没有
赛后总结
1:今天的T2确实挺妙的,以前没怎么做过折半搜索的题,以后可以往这方面想想
2:最后交的挺匆忙T2的打标忘去了,下次一定要记得在交之前确认是不是去打标,文件名是不是写对了
3:T1的区间DP也挺明显得了,但是转移确实挺妙的,T3的结论确实也是有用的,可惜我不会怎么转移,还是要多练DP题
4:T3的三进制状压我没有发现,要回去复习一下