DTOJ #4235. 交朋友

2024-03-08 23:48
文章标签 交朋友 dtoj 4235

本文主要是介绍DTOJ #4235. 交朋友,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:
给定一个n个点m条边的有向图,对于同一个点连向的两个点可以互相连双向边,求图中最多有几条边。
题解:
直观地想,首先对于每一个点,若它的出度大于1,则它连向的边为一个完全图,但每个点做完后又会产生影响,因此没法保证效率。
发现“对于同一个点连向的两个点可以互相连双向边”这个条件类似于并查集,即把双向边视为无向边,这样恰好满足了并查集的性质。
因为原始的边不在并查集的考虑范围内,故用原始的边去连这个并查集,得到的就是一些完全图(集合)和一些有向边,就很好算了。先用出度大于1的每个点的去连,然后考虑一条原始有向边的贡献,那也只可能是将它的起点、终点连起来了,发现条件为起点有另外的出边,即起点的集合大小大于1。因为对于边不好按一定顺序访问,故考虑访问点,因为只有所在集合大小大于1的点有用,且每个点最多只会有变得有用一次、用一次,故bfs一下,每次用有用的点去连,再将变得有用的点入队列即可。

这篇关于DTOJ #4235. 交朋友的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788818

相关文章

交朋友之道

最近,突然从同事那里明瞭一个怎样能够增进朋友感情之道。  原来是让别人请吃饭,而不是请别人吃饭。 你提议请客, 朋友有可能不好意思, 不会答应,但你说“你请我吃饭吧“, 反过来对方很多时会很乐意答应!那大家就可以一起吃饭, 增进大家的交流。   我在想,是的! 我同事是男的,但总是向女同事说, “请我吃饭吧!“, 而不是说, “我请你吃饭" 。 女的,也不会觉得不好意思。  一样,我同事有一次说,

DTOJ 2937. Sum of LCM

题意: 对于 A 1 , A 2 , … , A N A_1, A_2, \ldots, A_N A1​,A2​,…,AN​ ,求 ∑ i = 1 N ∑ j = 1 N l c m ( A i , A j ) \sum_{i = 1}^N \sum_{j = 1}^N \mathrm{lcm}(A_i, A_j) ∑i=1N​∑j=1N​lcm(Ai​,Aj​) 的值。 l c m ( a

DTOJ#4170. 「PKUWC2018」猎人杀

题意: 猎人杀是一款风靡一时的游戏“狼人杀”的民间版本,他的规则是这样的: 一开始有 n n n 个猎人,第 i i i 个猎人有仇恨度 w i w_i wi​ ,每个猎人只有一个固定的技能:死亡后必须开一枪,且被射中的人也会死亡。 然而向谁开枪也是有讲究的,假设当前还活着的猎人有 [ i 1 … i m ] [i_1\ldots i_m] [i1​…im​],那么有 w i k

(CSP2019模拟)DTOJ 4644. speike

题意 众所周知,Speike 狗是一条特别喜欢追着Tom 打的狗。 现在,Tom 又把Speike 惹生气了,现在Speike 需要跨越千山万水找Tom 报仇。 Speike 所在的世界可以看成是一个无穷大的平面,平面由一个平面直角坐标系确定。在平面上有许多不相交的矩形障碍,矩形的四边平行于坐标轴。 Speike 需要从 ( 0 , 0 ) (0,0) (0,0) 出发,在尽量短的时间内

DTOJ 4538. 「TJOI / HEOI2016」排序

题意 在 2016 年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。 这个难题是这样子的:给出一个 $1 $ 到 n n n 的全排列,现在对这个全排列序列进行 m m m 次局部排序,排序分为两种: ( 0 , l , r ) (0, l, r) (0,l,r) 表示将区间 [ l , r ] [l, r] [l,r]

(CSP2019模拟)DTOJ 4629. 世界

题意 有一个虚无的结界,隔开了两个世界。 人们在结界内游荡,而远方的星辰在结界外。 我们可以把结界看作 x x x 轴,那么人们都在 x x x 轴下方,而星星都在 x x x 轴上方。 人们本应该能看到所有的星星,但是结界外( x x x 轴上方)出现了几座墙,挡住了人们的视线。墙是平行于 x x x 轴的。 现在想问,每个人分别能看到多少星星。 测试点编号 n n n m

(CSP2019模拟)DTOJ 4632. 隐蔽的居所

题意 在小G的家乡,有很多人住在一个大湖的边上。 他告诉小D,这个大湖可以被视作一个圆。一共有 N N N 户人家, 他们住在这个圆的 N N N 等分点上,每个 N N N 等分点上恰好有一户人家. 这里的每户人家都有不同的信仰,其中第 i i i 户人家信仰第 i i i 种宗教。很显然,宗教对于生活会产生一定的影响,具体来说,相邻两户人家信仰的宗教的编号之差的绝对值不可以超过

(CSP2019模拟)DTOJ 4624. 树

题意 给定一棵 n n n 个结点的树,共有 q q q 次询问。 第 i i i 次询问首先包含了三个数 k i , m i , r i k_i,m_i,r_i ki​,mi​,ri​ ,接着给定了树上互不相同的 k i k_i ki​ 个关键点 a i , 1 , a i , 2 , … , a i , k a_{i, 1}, a_{i, 2}, \dots, a_{i, k}

(CSP2019模拟)DTOJ 4628. 黎明

题意 有一片云海形成的世界,有陆地有海洋,可以看作 R × C R \times C R×C 的网格。 随着岁月的变迁,有时候水位上涨,一部分区域会变成水道。 神奇的是,每次变成水道的区域都是一个矩形。(若这个矩形中有一部分原来就是水道,那么这部分不变,其他为陆地的部分变成水道) 有时候这个世界上会有人想从 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​) 通过在水道

(2019CSP模拟)DTOJ 4627. 灰烬

题意 灰烬之地有一排石柱,从左到右共有  n n n 个,其中有一些上面有灰烬,有一些上面没有。 你现在可以操控风的力量,风只能从左到右吹,每次你可以选择一个 k k k ( k k k 每次都可以变化),扬起前 n − k n-k n−k 个石柱上的一半的灰烬(你可以认为灰烬无穷多,每次取当前的一半,换言之是可以无限复制的),将其向右吹动  k k k 个位置。 问至少多少次可以使灰