题解-AGC011
前几题比较水,随便应付一下了。
AGC011C Squared Graph
统计三种联通块的数量:大小为 \(1\) 的,是二分图的,剩下的。
然后容易算出答案。带权并查集压缩路径记得加权啊。
AGC011D Half Reflector
果断暴力找规律,然后这题的数据有点问题,我的做法对不对也不知道就不写了。
AGC011E Increasing Numbers
先二分,得到初始最大数字和,然后从低位到高位贪心一下就好了(atcoder
上是铜题,luogu
上是蓝题,不懂 atcoder
怎么评的)。
AGC011F Train Service Planning
设一层大小为 \(k\),注意到一层后的决策方案仅与这层两车距离有关。
设前 \(i\) 层总共的距离(包括初始距离、一层内的等待的距离)为 \(d_i\)。
设 \(2a_i\) 的前缀和为 \(A_i\)。对于单行道:
第 \(i\) 层两车路径交叉的条件是 \(A_{i-1}<d_i<A_{i}\)。
所以相当于有很多个区间,然后您手上有一个初值任意的数,每次只能给这个数减去一个非负整数,要求它总是落在当前区间内。
这东西不能直接 dp
,有个贪心策略:如果当前的数在上一个区间内,那么可以不动它,否则从上一个区间的左端点转移过来最优。
实现的时候,可以用一个线段树,值为上次不包含它的区间编号,然后每次把不被当前区间包含的数全覆盖了,dp
值都为左端点的 dp
值。
然后最后最优的终点肯定是单行道的右端点。
\[\Huge\rm --AFO--
\]