传送门:点击打开链接题意:有Q次操作,每次操作告诉你l,r,s,表示区间[l,r]里的和为s。如果某次操作与之前得到的内容冲突,就无视这次操作,最后输出冲突的操作次数。思路:首先我们可以证明,只有当[l,r]存在多种情况被小区间恰好覆盖时,然后多种情况的小区间之和不相等时,就认为是冲突的。我们能比较容易的想到把l-1,和r去维护并查集,但是如何维护s,是个问题如果按秩合并,我们可以
传送门:点击打开链接题意:告诉你地图的大小,每年有的地方会长出山峰,问什么时候两端开始不连通的。思路:先到最后一年,就是长出很多山峰时开始。之后相当于把山峰拆掉,所以就是把4个方向的空地用并查集合并,然后判断两端是否已经连通。就这样倒着xjb搞,就能出答案了,注意点细节和输出答案的时间就行了#include #include #include #include #inc
传送门:点击打开链接题意:多次操作,操作1给两点之间增加一条边并求当前连通块数量,操作2求两点最早连通的时间,强制在线。思路:q巨虐我千百遍第一个思路想到可持久并查集+二分,因为很容易想到,然后只过了small的,large的T了其实这题的思路比可持久并查集更简单。并查集有两种方法来保持复杂度不退化,一种是路径压缩,一种是按照秩来做启发式合并,一般情况下我们都是写第一种这里
传送门:点击打开链接题意:给n个点,m条有权值的无向边,求存在多少个点(a,b) (a!=b),使得a到b至少有一条路径上的边最大权值小于等于x思路:将边读入排序,再先将x排序,初始化并查集,用并查集维护一个联通分量中的点的个数,让ans等于0按照边的权值从小到大添加边到图中,首先考虑如何更新ans添加的某条边如果是(u,v),如果u和v本身就连通了,那么再添加这条边并不会改变an
传送门:点击打开链接题意:给出n(思路:连通块肯定想到用并查集去维护。然后看到n比较小,所以可能可以每次查询里面复杂度带有n。因为删边用并查集不是很好维护,所以我们可能要想到能不能避免边的删除,那么很容易的想到前缀和思想。用PL[l]来保存[1,l]前l条么对于每
传送门:点击打开链接题意:很多只猴子,每个猴子有个强壮值,一开始每只猴子都不认识。会有
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号