标签:最大值 变化 set tiles path 状态 ini 绝对值 more
画图分析,可以发现路径形成了网格图,每一次的状态是一条斜线上的所有点,增加操作就是将网格图向外拓展,减少操作就是将网格图向内收拢。
可以分阶段统计,因为每次阶段上点的数量最大只会变化 \(5\),点数是 \(O(n)\) 级别的,相邻阶段之间可以用组合数转移。
然后就可以用 \(NTT\) 优化为 \(O(n^2\log n)\)。
淦,赛时因为暴力转移是 \(O(n^2)\) 一直 T,最后 5 分钟才发现复杂度假了$
就是一个网络流最小割的模型,选了一个点就必须选择它的所有后继,可以考虑最少要放弃多少正权和加上多少负权。
正权连源,负权连汇,边权为绝对值,然后连 \(inf\) 到每个点的直接后继,边全连的话可能存不下。
跑最小割即可。
因为要求最小的代价和,所以当减去的不是最大值或者加上的不是最小值的一定不是最优的,
设 \(f_{u,0/1,0/1}\) 表示是否减去最大值,是否加上最小值,走到 \(u\) 的最小代价,用 \(dijkstra\) 转移即可。
维护每个后缀的前缀最大值与最小值即可,答案为 \(Min + Max + 1\)
可以发现,只有回文串内部才会产生逆序对,而回文串内部的逆序对个数与相对大小无关,所以将回文串的前部分倒序即可
看 \(LCM\) 处是否重合即可
最小与次小值之和是否小于 \(d\)
标签:最大值 变化 set tiles path 状态 ini 绝对值 more
原文地址:https://www.cnblogs.com/ympc2005/p/14282343.html