HDU 5961传递 思维 + bitset

博客讨论了HDU 5961题目,涉及在有限时间内解决图论问题的策略。作者提到,对于6秒时限,可以使用BFS或DFS来检查最短路径和三元环,但在1500ms时限下,这些方法不适用。现场比赛的解决方案是利用bitset存储每个节点的出边,并通过bitset操作检查是否存在特定路径条件,如只要有BC边,就有AC边。这种方法的时间复杂度为O(n^2/64),但实际运行仍可能超过时间限制。
摘要由CSDN通过智能技术生成

传送门:HDU 5961

题意:中文题

思路:这题如果按hdu上的6s时限的话就有很多做法了,从每个点开始bfs判断是否有长度大于等于2的最短路径,或者dfs判断给出的图中是否有三元环等等,但是据说现场赛是1500ms时限,那这些做法就都不行了。

能在现场赛实现下通过的一个方法是用bitset将每个点的出边保存下来,然后枚举每一条边,判断该边的两个端点的出边是否都为下图的情况

即判断是否只要有BC边就有AC边,具体做法就是用bitset[B] & bitset[A]看看结果是否等于bitset[B]

这样复杂度就是O(n ^ 2 / 64)了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值