树 V 图
相同 \(f(i)\) 的点必然构成一个连通块,不然一定无解。
每一个连通块中需要选出一个关键点,考虑相邻连通块是否合法,发现条件其实很很好判,就是两个交界点的距离需要满足某个大小关系,容易预处理后 \(O(1)\) 判,于是 \(f_{u,x}\) 表示 \(u\) 连通块内取 \(x\) 的方案数,DP 即可。
\(O(Tn^2)\),Code。
矩阵
马桶套路题,维护四联通双向链表,链表的边的值是两边的差,同时需要维护对边的标号。
对于加操作,抽出边界,则权值差只在这里修改;对于旋转操作,抽出边界,然后交换连边即可。
细节巨大无敌多,\(O(nq)\),Code。