【杂题】AT
AT4432 [ARC103B] Robot Arms
显然若
这种问题的常见套路是二进制分解(
实现上因为一定有解,那么从大到小枚举步长,选择离终点近的方向走即可
AT4434 [ARC103D] Distance Sums
以重心(set 实现
注意上述过程只保证了父子的
AT3672 [ARC085C] MUL
还是不够敏感
选
AT3913 XOR Tree \star
每次操作影响的边数是
对于权值相同的点显然两两配对消掉,然后最多剩下
AT4132 [ARC097C] Sorted and Sorted
根据冒泡排序,每种颜色内部的交换次数为逆序对数,接下来只需考虑颜色间的
最终状态两种颜色都递增,考虑从前往后放球,设
前缀和优化即可做到
AT2134 Zigzag MST \star
半年前 hkh 讲的题,现在才看懂题解。。。
启示我们对于联通性相关问题,一个连通块中的点是等价的,以及注意观察性质来减少边数
AT4133 [ARC097D] Monochrome Cat \star
一个套路是把黑色的叶子删掉,之后必须遍历每个叶子,即整棵树
手模样例/想象一下,发现路径大概是回路删掉一条链
先考虑回路,每条边要走两次,那么每个点颜色被改变次数即为度数,遍历结束后的白色点(称为标记点)需要在走到它时手动改变一次
然后考虑删掉一条链,讨论一下:
- 未标记点:到达它的边少走一次,但它需要手动改变一次
- 标记点:到达它的边少走一次,且它不再需要手动改变
那么将标记点的点权记为
细节:对于从
AT2272 [ARC066B] Xor Sum \star
首先有一个性质:
对于当前 DP 出的
- 添加
0,0 :2v - 添加
0,1 :2v+1 - 添加
1,1 :2v+2
实现上采用记搜逆推即可
AT3721 [ARC086C] Smuggling Marbles
显然每层独立,可以分开 DP
枚举每层深度,设
最后的问题是如果每层 DP 一次是