随笔分类 -  并查集

摘要:传送门 考虑构建图论模型,每个客人看成边,菜看成点,那么每个客人连接他喜欢的两个菜 对于某个客人,如果他要开心,它连接的两点至少要有一个还未被选择 考虑一个显然的贪心,我们要尽量让每个客人只吃到一种菜 考虑构建一个生成树,每次从树上一个节点往外延伸,连向一个新的点,那之间的边就是新的一个客人 并且这 阅读全文
posted @ 2019-09-16 11:32 LLTYYC 阅读(337) 评论(0) 推荐(0)
摘要:传送门 有回档操作,考虑离线,这样就知道最终的操作序列了 发现前面的操作会被后面覆盖,干脆直接从后往前操作,如果一个位置以前染色过了那就不用再染色 所以我们可以用 $n$ 个链表维护 $n$ 个行,操作过的位置直接从链表中删除即可 然后复杂度就是 $O(nm)$,代码中是用 $n$ 个并查集来维护行 阅读全文
posted @ 2019-09-13 10:38 LLTYYC 阅读(191) 评论(0) 推荐(0)
摘要:传送门 子任务 $4$ 告诉我们可以离线搞带权并查集 从大到小枚举询问,从大到小连边 如果没有修改操作就可以过了 但是有修改,考虑最暴力的暴力,搞可撤销并查集 同样先离线,从大到小处理询问时,按原边权从大到小枚举到一条边时,如果他一直都没有修改,那么直接加入并查集 如果有修改那先不要加,枚举所有修改 阅读全文
posted @ 2019-08-16 07:56 LLTYYC 阅读(204) 评论(0) 推荐(0)
摘要:传送门 并查集 起初我也不懂,后来是看了题解才懂的 感谢https://www.luogu.org/space/show?uid=79044 尽力讲清楚吧.. 带权并查集.. 并查集在路径压缩时顺带把并查集上的边权也压缩 设 sum[i] 表示船 i 前面有多少船,不包括 i 求两船之间有多少船,只 阅读全文
posted @ 2018-08-23 11:42 LLTYYC 阅读(226) 评论(0) 推荐(0)
摘要:传送门 并查集 数据较大 直接用tarjan求联通块会超时 注意到只有删除没有添加 如果是只有添加就很容易用并查集求联通块 所以考虑把过程反过来 即 一开始是没有边的 然后逐渐添加边 把联通块数量存起来 再输出就好了.. 一开始先遍历一遍最终状态,求出联通块数量 然后慢慢加边,存一下答案 顺便注意一 阅读全文
posted @ 2018-08-23 11:16 LLTYYC 阅读(309) 评论(0) 推荐(0)