前几题比较水,随便应付一下了。
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
m --AFO--
]