9.26
上午改题加透彻树形dp
- 树形dp的最小点覆盖与最小边覆盖大有千秋
最小边覆盖只需要考虑:这条边是由他还是他儿子控制,即边的两个端点
而最小点覆盖:需要考虑一个点是由他儿子还是他自己或者是他父亲节点控制,状态有三维
其中最小边覆盖,一定包含所有边与点
而最小点覆盖,一定包含所有点,但是不一定包含所有边,例子不难举出反例
P2016战略游戏是需要全部边被占,包含全部点被占的情况,而保安站岗并不一定所有边都会被占
- 考试第一题
一个一元二次sb算术题,但是要考虑精度问题,在\([x, x+1]\)之间都要算一下
- 考试第二题
大致题意:每次可以选择一条边在其一端加1,在另一端点减1,但是有一个权值范围,求\(\sum i \times val[i]\)
由于在第一题浪费太多时间,看第二题的时候第一反应是写暴力,但是tm暴力部分分比正解还要难写难调
solution:搜出所有联通块,显然在一个联通块里面所有的点都是可达的,无论通过何种操作,我们都可以使得一个点加1一个点减1
所以,贪心的倒序枚举点的编号,尽量满足编号大的,所有联通块所贡献出来的和就是答案
1 | inline int fuck(int x) |