并查集
超越勇者
这个作者很懒,什么都没留下…
展开
-
L2-010 排座位 (25 分) 并查集
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系,其中关系为1表示是朋友,-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后K行,每行给出一对需要查询原创 2022-04-22 15:22:01 · 73 阅读 · 0 评论 -
7-7 团伙 (15 分) 并查集
在某城市里住着 n 个人,任何两个认识的人不是朋友就是敌人,而且满足:我朋友的朋友是我的朋友; 我敌人的敌人是我的朋友; 所有是朋友的人组成一个团伙。告诉你关于这 n 个人的 m 条信息,即某两个人是朋友, 或者某两个人是敌人,请你编写一个程序,计算出这个城市多可能有多少个团伙?输入格式:第 1 行为 n 和 m,1<n<1000,1<=m<=100 000;以下 m 行,每行为 p x y,p 的值为 0 或 1,p 为 0 时,表示 x 和 y 是朋友,p 为原创 2022-04-22 15:00:45 · 90 阅读 · 0 评论 -
L2-024 部落 (25 分)
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤104),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始连续编号,最大编号不会超过104。原创 2022-04-19 16:05:59 · 55 阅读 · 0 评论