u
考试的问题就是考场卡常
当时观察到每个点的修改的三角形是固定的然后以为 (3e8) 真的能过
然后就开始卡常,一直卡了1h左右
其实正解很弱智,就是像构建差分图一样就行了
w
因为每个边最多翻一次,那么就可以做了
考虑 设(f_x) 和 (g_x) 表示了操作数和路径长度
每次转移合并子树内的情况,考虑当前节点的出边
大力分类讨论
考试的时候一开始的做法有如下问题:
- 考虑最后一个剩余边的时候应该直接就是单边加
然后又维护了个 (d[x]) 表示剩余边的深度,转移的时候 (g_x) 一直少情况
但是这个东西其实很难维护(我不知道咋做),贪心取最深的剪掉的时候过于复杂,很可能这样子贪心就是挂掉的
正解是换掉统计的方式,考虑这个节点的入边
还是合并,维护 (f_{x,0/1}) 表示是不是翻转入边,分类讨论就行了
补上这题目的暴力做法:
是否翻转选定之后链覆盖好说,那么枚举 (w_2=2) 的边是不是翻转即可
收获
-
树上转移的题目,如果父子边在父亲那里很复杂,那么可以考虑在儿子的地方进行更新
-
dp题如果出现了要部分贪心的情况有时候会是错的,记得调整思路
v
考试的时候冲完w这题目就只剩不到30min了
最后dfs还写假了,当时确实没想到可以状压,也没想到可以逆着做,确实有点慌张了,也是不太敏感了
但是这个 (nle 30) 不好做,那就记搜实现就行了,压到一个 (int) 里面
这里减少状态数的方式就是正反其实答案是一样的,rev一下
反思:
((1)) w题中的收获
((2)) 考试的是要紧张高效,尽量想正解,在没得完分数的情况下不要卡常
((3)) 小数据范围可以考虑状压呀……