随笔分类 - 并查集/最小生成树/生成树计数
摘要:很明显只有最小生成树里面的点有用 我会一个离线的做法,把询问边长排序,逐步合并树,启发式合并splay 在线怎么做呢? 考虑合并出最小生成树的过程,两点合并是并不是一边连向一边而是建出新点,并将新点连向两边边权为这两点的边权。重构出新树后,所有原点都是叶子节点,并且边权深到浅单增,可以用倍增找到断开
阅读全文
摘要:调了一早上80pt不知道那里错了。。。结果发现我看错题意了。。。一个清洁工扫的是区间而不是点。。。 先离散化 首先对于一个人它扫了地,他影响的其他人是一个区间 而且每个区间都只会被扫一次,所以我们可以暴力枚举 那么算法的架构已经出来了:线段树维护清洁工清理区间长度的最小值,然后每次选出一个清洁工,就
阅读全文
摘要:在本校神犇bright(点此近距离膜拜)的王(wei)之(bi)威(li)严(you)之下学了一手wqs(我七岁?我去送?)二分 然而我还不是很会。。。就不误人子弟讲这个算法了,大家可以去学一下 假如学会了的话,这里有个小细节,就是排序的时候相同长度颜色白的要放在颜色黑的前面,>=K记录答案 来想想
阅读全文
摘要:扔到一个块里是并查集的工作 然后怎样维护最大的时间? 采用不路径压缩的并查集按秩合并保证复杂度,边权为时间,询问时暴力往上跳 一开始以为连接两个联通块要y向x连边并且y的祖先反向连,实际上是不用的,因为隶属于同个联通块要去其他联通块这是必须边 是不是就有动态维护最小生成树的味道了
阅读全文
摘要:被gc巨侠D飞来做这题,好恶心,还不让人在线LCT T_T (其实明明就是你忘了强行甩锅) xgc:并查集乱搞就能过写什么LCT 动态维护双联通分量 我们离线做...... 首先做一次最小生成树,构出搜索树 然后没有用到的边就拿去暴力合并环,用并查集跳着找 完了
阅读全文
摘要:卡常卡了老半天。。。(自带大常数的毒瘤选手的痛) 边归到点,先把最后的图处理出来再倒着返回,把白色的边压到一个并查集,答案就是根的父亲
阅读全文
摘要:很有意思的最小生成树啊。 网上的题解大多是状压+最小生成树,经过我的试验,其实只要把每个联通块找出来,一个个做一次就可以了。 放一个状压的。懒得再写一个搜索找联通块
阅读全文
摘要:最优比率生成树问题。 是完全图要用prim。顺便学了一发dinkelbach。二分1700ms+ 迭代200ms+很优秀
阅读全文
摘要:这题第一步肯定就是并查集啦。 对于一个块分成两个集合,相同和不同 然后进行背包二选一 但是有两种情况得开二维 然而出答案的时候也不能省,因为有可能没选好就到答案。。 主要是麻烦。。。很麻烦。。。
阅读全文
摘要:好神的题啊 首先在意识上差分,那么条件就变成了x-1和y的奇偶性异同 现在就像是程序分析那题了 但是要输出哪里开始不对 神的是用带权并查集,假如相同设为0,不同设为1,那么同一并查集内的点通过异或运算就可以确定奇偶性的关系了
阅读全文
摘要:一波卡线AC美滋滋。。 这题以前看过,但是不会矩阵树定理就弃了 今天再看还是不是很会。。 状压一波,0/1表示这个公司取还是不取,那么就把这个公司能够修的边放进图弄基尔霍夫矩阵求行列式,但是这样并不能保证这个公司必定被取 考虑容斥,就要减去这个公司一定不取的情况…… 假如奇偶性和n-1就加,否则就减
阅读全文
摘要:直接构图 无向图生成树计数。运用矩阵树定理
阅读全文
摘要:学了个新东西:矩阵树定理。就是生成树计数嘛。(听说cqoi2018都是裸题??) 构出基尔霍夫矩阵,论文是无向图,有向图的话度数矩阵应该是入度,邻接矩阵连单向边 求出矩阵行列式即可(好像这东西scy初一教过,没什么印象了囧) 不是任意n-1阶主子式吗。。。我把第1行第1列删了就过了,第n行第n列删了
阅读全文
摘要:shui
阅读全文
摘要:一眼LCT什么鬼。。。 带权并查集瞎搞搞AC
阅读全文
摘要:又是玄学的一天~ 首先,这题做法就很玄学,考虑到点和询问都很少,那么很多边都是没有改动的,那么可以离线用并查集缩点,然后爆搜求解。 假如只是这样还好吧,尴尬就在于我跑数据前面3个点挂了??黑人问号 然后一怒之下特判,假如边数<10000那我就不缩点,直接爆力搞! A了~ 真的A了。。。 这个故事告诉
阅读全文
摘要:那就是最小生成树咯 建树后用LCA求解即可。
阅读全文
摘要:这题真的很容易想到最小生成树。 而且题目有特别的性质,高处的连低处的是单向的,但是不会构环(老实讲一开始就是担心这个,但是现在发现好像没啥影响吧),所以其实先把能够访问的点dfs一次,排完序就直接搞好了。
阅读全文
摘要:离散化+并查集。 为了离散化而离线后,我发现可以先把=的连在一起,然后再判不等于。这样做很清晰简洁。 1A真开心。
阅读全文
摘要:这题想不出来。 不浪费时间了。 以后找时间填。 update 就是判奇环咯 然而LCT我搞不出来。。 是因为对于当前的最大生成树,新时间加入的边可能是比前面最大生成树里最小边要大,然后就要找到最大生成树里最小的边。。这样要化边为点我萎了还是写不出来你们去%吧 #include<cstdio> #in
阅读全文