摘要:
题意:对一个矩阵进行子矩阵操作。元素最多有1e6个,树套树不好开(我不会),把二维坐标化成一维的,一个子矩阵操作分解成多条线段的操作。一次操作的复杂度是RlogC,很容易找到极端的数据(OJ上实测没有),如果判断一下然后启发式建树复杂度是min(RlogC,ClogR)。代码中结点没有保存l和r,而... 阅读全文
摘要:
此题最难处理的操作就是将一个单点改变集合,而普通的并查集是不支持这种操作的。当结点p是叶子结点的时候,直接pa[p] = root(q)是可以的,p没有子结点,这个操作对其它结点不会造成任何影响,而当p是父结点的时候这种操作会破坏子节点的路径,因此必须保留原来的路径。我们希望pa[p] = root... 阅读全文
摘要:
从包含k个整数的k个数组中各选一个求和,在所有的和中选最小的k个值。思路是多路归并,对于两个长度为k的有序表按一定顺序选两个数字组成和,(B表已经有序)会形成n个有序表A1+B1比较,而现在需要同时合并n个有序表,优先队列(堆)就派上用场了。类似归并排序用i和j维护有序表当前考虑元素,合并的时候,每... 阅读全文