文章分类 -  数据结构-并查集

摘要:题意 给你一个n*m的矩阵和k个点,每次你可以使每行或每列上的所有点±1,问有没有可能使所有k个点达到给定的值 思路 经过一通分析题解之后,我们可以发现,在同一行或者列上同时进行加减操作是没有意义的 因为我+2再-1就等于+1,不会对数值有任何实质意义上的影响 所以我们就可以考虑规定在行上进行加法, 阅读全文
posted @ 2020-10-14 14:58 玩玩就好7744 阅读(69) 评论(0) 推荐(0) 编辑
摘要:题意 给你一堆东西,有一个操作和一个询问,每次操作将两堆合并成一堆,每次询问两个东西在不在同一堆里,不在输出-1,在输出他们之间的距离 思路 一道很显然的带权并查集 详细说明一下带权并查集的做法吧 对于每一个元素,我们记录三个东西: 第一个是正常的并查集的父亲,第二个是在并查集中的位置(也就是距离最 阅读全文
posted @ 2020-10-14 08:44 玩玩就好7744 阅读(72) 评论(0) 推荐(0) 编辑
摘要:题意 给你一些数量关系,判断它们是否矛盾思路 这道题目很显然的一个思路是查分约束系统 但是还有一个带权并查集的做法 首先本题的核心在于冲突与衔接 显然我们可以得出这个结论,如果我们知道了[a,b]的关系和[b,c]的关系 那么当我们知道了[a,c]的关系时,我们就可以判断是否有冲突 然后应为本身具有 阅读全文
posted @ 2020-10-14 07:36 玩玩就好7744 阅读(62) 评论(0) 推荐(0) 编辑
摘要:题意 给你一堆东西,然后有两个操作,合并与查询,每次查询问某个方块在它这一堆的什么位置 思路 带权并查集模板 代码 #include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #in 阅读全文
posted @ 2020-10-13 16:49 玩玩就好7744 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题意 给你一串数列,你在上面不断染色,然后问最后染成什么样子 思路 显然,应为染色可以被覆盖,所以我们应该从后往前染色 对于每一次染色,我们将染色过的点用并查集缩点 每一次染色查找都寻找没有被缩点的区间进行染色,然后再次缩点 注意输出时要使用快速输入输出,这题卡常 代码 #include<iostr 阅读全文
posted @ 2020-10-13 15:24 玩玩就好7744 阅读(89) 评论(0) 推荐(0) 编辑
摘要:题意 给你一个图,问你从S点到T点的最长路与最短路之比最小为多少 思路 这个题目如果从纯图论的方向去向其实并不好入手,我们需要找许多条路径然后一一判断,首先复杂度我们就很难接受,代码难度也十分巨大 但是我们考虑到两点之间如果有连边就等于这两个点联通就可以很自然的想到并查集的做法 我们首先按照边权从小 阅读全文
posted @ 2020-10-13 14:37 玩玩就好7744 阅读(69) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示