![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
文章平均质量分 61
1
zzqwtc
blog dot zzqwtc dot com
展开
-
AcWing239. 奇偶游戏
AcWing239. 奇偶游戏 思路 si=a1+a2+⋯+ais_{i} = a_{1} + a_{2} +\dots +a_{i}si=a1+a2+⋯+ai 前i个数中1的个数 s[l−r]s[l-r]s[l−r]中有奇数个1 ⟺ \iff⟺ sr−sl−1s_{r} - s_{l-1}sr−sl−1为奇数 ⟺ \iff⟺ srs_{r}sr与sl−1s_{l-1}sl−1奇偶性不同 偶数个1 ⟺ \iff⟺ srs_{r}sr与sl−1s_{l - 1}sl−1奇原创 2021-01-24 22:52:20 · 2092 阅读 · 0 评论 -
AcWing238. 银河英雄传说
AcWing238. 银河英雄传说 有一个划分为N列的星际战场,各列依次编号为1,2,…,N。 有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。 有T条指令,每条指令格式为以下两种之一: 1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。 2、C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。 现在需要你编写一个程序,处理一系列的指令。 输入格式 第一行包含整数T,表示共有T条指令。 接下来T行原创 2021-01-24 22:51:39 · 2087 阅读 · 0 评论 -
AcWing237. 程序自动分析
AcWing237. 程序自动分析 思路 先把相等的合并 再判断不相等是否与已知条件矛盾 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设x1,x2,x3x_{1},x_{2},x_{3}x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xjx_{i}=x_{j}xi=xj或xi≠xjx_{i}≠x_{j}xi=xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。原创 2021-01-24 22:50:53 · 2014 阅读 · 0 评论 -
AcWing1252. 搭配购买 (并查集+01背包)
AcWing1252. 搭配购买 思路 先分组 再做01背包 Joe觉得云朵很美,决定去山上的商店买一些云朵。 商店里有 n 朵云,云朵被编号为 1,2,…,n,并且每朵云都有一个价值。 但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。 但是Joe的钱有限,所以他希望买的价值越多越好。 输入格式 第 1 行包含三个整数 n,m,w表示有 n 朵云,m 个搭配,Joe有 w 的钱。 第 2∼n+1行,每行两个整数cic_{i}ci,did_{i}di 表示 i 朵云的原创 2021-01-24 22:50:23 · 2121 阅读 · 0 评论 -
AcWing1250. 格子游戏
AcWing1250. 格子游戏 Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3)。 接着,他们两个轮流在相邻的点之间画上红边和蓝边: 直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了! 他们甚至在游戏中都不知道谁赢得了游戏。 于是请你写一个程序,帮助他们计算他们是否结束了游戏? 输入格式 输入数据第一行为两个整数 n 和 m。n表示点阵的大小,m 表示一共画了 m 条线。 以后 m 行,每行首先有两个数字原创 2021-01-24 22:48:48 · 2075 阅读 · 0 评论 -
并查集原理
功能 ①:合并两个集合 void merge(int a, int b) { f[Find(a)] = Find(b); } ②:查询某个元素的祖宗节点 int Find(int x) { return x == f[x] ? x : f[x] = Find(f[x]); } 扩展 ① 记录每个集合的大小(绑定到根节点) int pa = Find(a); int pb = Find(b); if(){ s[pb] += s[pa] } ②每个点到根节点的距离(绑定到每一个元素身上) in原创 2021-01-24 22:48:01 · 1977 阅读 · 0 评论