【Atcoder D - Circumferences】并查集】的更多相关文章

Problem Statement There are N cities. There are also K roads and L railways, extending between the cities. The i-th road bidirectionally connects the pi-th and qi-th cities, and the i-th railway bidirectionally connects the ri-th and si-th cities. No…
题目链接:https://atcoder.jp/contests/abc120/tasks/abc120_d 题意 先给m条边,然后按顺序慢慢删掉边,求每一次删掉之后有多少对(i,j)不连通(我应该解释对了吧) 删边这个过程就可以从反方向进行,相当于从m到1慢慢加边 然后就把连通的用并查集存起来,另用一个s数组来存每个点和他连通的有几个点 不连通的就减去s[i]*s[j]就好了 初始的是C(n,2) 没边的时候所有点都不连通嘛. 代码如下 #include <cstdio> #include…
题目链接:https://atcoder.jp/contests/nikkei2019-qual/tasks/nikkei2019_qual_e 题意:给出一个 n 个点 m 条边的无向图,每个点和每条边都有权值,让你删除一些边,使得最终的图中满足条件:一条边存在当且仅当包含该边的连通块的点权值和大于等于该边权值,问最少要移走多少条边. 题解:删边不好做,考虑加边,对于每条边,判断加入是否合法.按边权从小到大排序进行加边,要加入一条边之前,若之前两点不连通,则合并起来变成一个连通块,可以用并查集…
原题链接:F - Cards (atcoder.jp) 题意: 给定N张牌,每张牌正反面各有一个数,所有牌的正面.反面分别构成大小为N的排列P,Q. 求有多少种摆放方式,使得N张牌朝上的数字构成一个1~N的排列. 思路:dp + 并查集 建图:有1~N的顶点,然后Pi跟Qi连一条边. 因为给定的是两个排列,所以每个点的度数为2,因而建出的图必然是由几个独立的环构成. 根据乘法原理,答案就等于每个环的方案数相乘. 求每个环的方案数: 假设环的大小为n(点的数量),dp[n]表示这样的环的方案数:d…
题目描述: 你有一个1到N的排列P1,P2,P3...PN,还有M对数(x1,y1),(x2,y2),....,(xM,yM),现在你可以选取任意对数,每对数可以选取任意次,然后对选择的某对数(xi,yi)进行操作,操作方式为交换xi,yi两个位置的数.最终你想要Pi=i的位置尽可能多.输出最多可以有多少个这样的位置 输入格式: 第一行输入一个整数N,第二行输入一个整数M 接下来M行每行输入一对数xi,yi 输出格式: 输出一个整数 样例输入1: 5 2 5 3 1 4 2 1 3 5 4 样例…
問題文N 個の都市があり.K 本の道路と L 本の鉄道が都市の間に伸びています. i 番目の道路は pi 番目と qi 番目の都市を双方向に結び. i 番目の鉄道は ri 番目と si 番目の都市を双方向に結びます. 異なる道路が同じ 2 つの都市を結ぶことはありません.同様に.異なる鉄道が同じ 2 つの都市を結ぶことはありません. ある都市から別の都市に何本かの道路を通って到達できるとき.それらの都市は道路で連結しているとします.また.すべての都市はそれ自身と道路で連結しているとみなします.鉄…
Problem Statement There are N cities. There are also K roads and L railways, extending between the cities. The i-th road bidirectionally connects the pi-th and qi-th cities, and the i-th railway bidirectionally connects the ri-th and si-th cities. No…
题意:有\(n\)个人,给你\(m\)对朋友关系,朋友的朋友也是朋友,现在你想要将他们拆散放到不同的集合中,且每个集合中的人没有任何一对朋友关系,问最少需要多少集合. 题解:首先用并查集将朋友关系维护到集合中,然后贪心,其实我们所需要的集合数就是之前并查集维护的集合中的最大元素个数. 代码: int n,m; int u,v; int p[N]; map<int,int> mp; int find(int x){ if(p[x]!=x) p[x]=find(p[x]); return p[x]…
http://abc049.contest.atcoder.jp/tasks/arc065_b 一开始做这题的时候,就直接蒙逼了,n是2e5,如果真的要算出每一个节点u能否到达任意一个节点i,这不是floyd吗?复杂度要达到n^3,bitset优化也没用了.然后想了想,肯定不是的,如果有很快的方法能判断出一张图的两个节点是否连通,那floyd就没用了.然后想了一节课,发现还是需要判断是否相连啊,不判断就没得玩了. 然后想到了并查集,确实可以很快判断是否相连了.然后我就想那floyd就没啥用了吧.…
4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加. 在大会的晚餐上,调酒师 Rainbow 调制了 nn 杯鸡尾酒.这 nn 杯鸡尾酒排成一行,其中第 ii 杯酒 (1≤i≤n1≤i≤n) 被贴上了一个标签 sisi,每个标签都是 2626 个小写英文字母之一.设 Str(l,r)Str(l,r)…