返回信息流描述
如果有这么三个人a,b,c,并且a爱上b,b爱上c,c爱上a这样一个循环,那么我们就把这种包含三个人的循环定义为“奇怪的循环”。我们给出一群人的爱慕关系,目标是找出这些爱慕关系中有多少这种狗血的“奇怪的循环”。
输入
输入共包括n+1行,第一行为正整数n,下面紧跟n行;
每行包括两个名字A,B并用空格隔开,表示A爱上了B
(输入数据保证一个人只爱另外一个人,不存在一个人爱多个人的情况)
输出
输出一个整数,共包含多少个“奇怪的循环”。
样例输入
4
Alice Bob
Bob Carol
Carol Alice
Syf None
样例输出
1
提示
样例中Alice,Bob,Carol就是这么一个循环
这是一条镜像帖。来源:北邮人论坛 / python / #26106同步于 2022/4/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
请教师哥师姐们一道题,万分感谢
xuhuisteven
2022/4/13镜像同步23 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
图存成邻接矩阵。对每个节点 x 枚举它的所有前驱 x.prev,如果 x 有后继 x.next 且 x.next 到 x.prev 有边,环加一。
每个节点判断一下是否已经在环中避免重复。
网搜结果:先求无向图三元环,然后用O(1)时间判断无向图三元环是否是有向图的三元环。
然后再加上一些奇怪的优化。复杂度可能O(m * sqrt(m))。
参考:
https://zybuluo.com/Junlier/note/1322477
https://www.luogu.com.cn/problem/P1989
就是题目的说法而已啊……
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 哪里奇怪了?是因为是奇数个人,所以必然有同性恋?还是仅仅是因为是个循环?
这个用哈西表键值对就好。复杂度是o(n)。存好每行的一对值,然后一直索取,看能不能形成环,不能就排除一开始那个节点。一共有n个节点。所以复杂度是o(n
)
【 在 Wizmann 的大作中提到: 】
: 网搜结果:先求无向图三元环,然后用O(1)时间判断无向图三元环是否是有向图的三元环。
: 然后再加上一些奇怪的优化。复杂度可能O(m * sqrt(m))。
: ............