A
直接判min(a, b) + min(c, d) <= n
B
按%k分类求和 或者暴力扫
C
把每个食物当成重量a - k * b, 价值a的物品
然后就是做背包问题求重量和为0的最优解
为了方便可以把重量调成正数
D
显然最终区间有一边是卡着某条边的界(不然可以调整到更优)
那枚举一个界,对另一个界排序后扫一遍,同时用并查集维护,找到另一个界的最值
排序只用做一遍
E
分别计算以每个点为原点,对四个象限的贡献是多少
可以得到每种音符为四个象限做出的最大贡献
然后相邻两点的最大值就可以直接算出来了