并查集
文章平均质量分 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 · 2099 阅读 · 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 · 2111 阅读 · 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 · 2029 阅读 · 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 · 2130 阅读 · 0 评论 -
AcWing1250. 格子游戏
AcWing1250. 格子游戏Alice和Bob玩了一个古老的游戏:首先画一个 n×n 的点阵(下图 n=3)。接着,他们两个轮流在相邻的点之间画上红边和蓝边:直到围成一个封闭的圈(面积不必为 1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了,他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?输入格式输入数据第一行为两个整数 n 和 m。n表示点阵的大小,m 表示一共画了 m 条线。以后 m 行,每行首先有两个数字原创 2021-01-24 22:48:48 · 2088 阅读 · 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 · 1980 阅读 · 0 评论