A:合并集合
预处理出来每个子端有多少个不同的数
区间dp直接做就可以了
B:ZYB建围墙
首先发现六边形一定是最优的
然后可以推六边形可以围住区域面积的柿子
然后二分找到最少要多大的六边形
然后一条边一条边的缩小 直到最少的可行情况
二分是log的 最后缩不会超过6次 所以复杂度正确
C:ZYB和售货机
每个商品选择能获得它收益的商品中最便宜的一个买
然后发现每个都可以买到1个
但是有环的情况
直接找出环中对收益影响最小的一个 然后减去就可以了
但是有可能改完之后还不如不买 特判掉就可以了
D:ZYB玩字符串
To Be Continue