A. 老夫
考虑按照$c$递增的顺序查找答案,那么发现需要进行的操作是区间加下标,全局最值。
直接上分块凸包就行了。
B. 打算
考虑将坐标(x,y)转化成(x+y,x-y),这样就将两维独立了出来。
对于每一维分别考虑,那么每一个限制都可以被表达成$a*L+b=x_i$的形式,$x_i$表示$i$时刻的坐标,$L$表示一个周期的位移。
那么考虑按照时间排序,那么由两个时间相邻的限制可以解出$L$的范围,将所有取交就能得到一个合法的$L$,然后就能递推出每一个时刻的坐标。
注意在解的区间中不一定全部合法,长度还和总时间的奇偶性有关。
C. 报复社会
假如字符集大小为$2$,设$f_i=cnt_{i,a}-cnt(i,b)$。
那么一个字符串合法的条件是,所有的$f_i$属于$[-k,0],[-k+1,1],[0,k]$等区间中。
那么枚举这个区间的左端点就可以直接dp出来,并且可以显然的用矩阵优化。
然而这样会使一些方案算重,也就是$[-k+1,0]$等区间被算了两次,所以要减掉。
对于更小的区间可以发现刚好容斥掉了,所以不用考虑。
对于字符集大小为$3$的情况,可以类似的考虑,用8种情况来容斥。
然后发现转移系数只和三个区间左端点的和或差有关,所以可以预处理转移系数。