11.1 JOI的神题
T1
第一个点就是所有边到它的那个方向的边的权值和。
之后以这一个点为根,第二个点就是根到这个点的另外一个方向的链,。
结论题。可以用反证法证明。E=1和E=2 拿出来单独讨论,之后用E=2的根,每一次删最多的那个就可以了。
这里需要用线段树维护dfs序。
考场差点写出来了。。。。
T2
特别神奇的DP
https://www.cnblogs.com/coldchair/p/12431331.html
主要是写出朴素的dp,然后又优化。
优化是一次更新一列的答案,用两个set维护差分数组,因为只有n个关键点,那么就只有n个位置会变成负数。所以复杂度才是对的。
每一个值等于其前面的最大值。转成差分数组就变成找第一个负数的地方和后面一个正数抵消,直到抵不掉之后变成0,最后前缀和回来。
感觉每一步都很难想到。
T3
也挺简单的啊。。。
把能把原来树拆成两半的边先拆掉,剩下的点可以合成为一个点因为它们一定不会被拆成几份。
显然每一种颜色的点都只在一个新点内。把那些边加回来变成新树。
现在一次操作就是给树上任意连一条边,需要其删任意一条边之后联通即变成边双。
显然,每一次连两个叶子是最优策略。所以答案就是叶子除以二向上取整。
这里讲的建新树的方法在之前某道题里面出现过。
按照dfs序排序之后相邻的两个的lca标记一下就可以了。
T4
不会。
11.2 爆炸了
T1
简单题。把每个位置看成一个点,然后每次相等可以建边,把相等的缩成一个点,然后贪心从前往后取即可。
T2
简单题。并查集缩点,传送门就是单向边,100个点规模图上问连通性直接扫一遍即可。
freopen写错了。。。。
T3
简单题。但是没看出来。
这个式子\(Sa_{i}-kSb_i\)明显就可以看做以\(Sa_i\)为截距,\(Sb_i\)为斜率的直线的函数值,然后问取自变量取k时哪一条直线函数值最大。
李超树即可。
T4
不会。
状态怕是有点问题。注意还是按照之前的步骤来。
先把题看完。
写已经看出来的暴力。
想正解。注意在多个题之间利益最大化。
检查。
不管难还是简单,下次一定要考出自己满意的成绩。