2017.1.21【初中部 GDKOI】模拟赛B组

本文回顾了一场比赛中的得失,详细解析了三道题目:利用树的特性解决节点连通性问题;应用Kosaraju算法求解有向图的强连通分量;以及通过观察找出规律的方法。强调了面对难题时不应轻易放弃的重要性。

今天的比赛翻车了,40+10+0=50,排得很后。主要原因是第三题没有认真思考,以为自己不会,其实只要再认真想一想就可以了。

T1:这题有一个十分巧妙的方法。

因为给出的图是连通、无环且没有重边的,所以我们可以认为给出的图是一棵树。首先,我们把所有点的祖先都设为1节点。然后在每删除一条边时,就把这条边连接的深度较深的节点及其子树的祖先都赋为这个节点。在查询两个节点是否连通时,就直接判断它们的祖先是否相同就行了。注意,在查找节点的子节点时,要用深搜,不要用广搜,广搜的细节太多了,我调了半个下午都调不出来。


T2:这题涉及到一个新知识点:求有向图的强连通分量。我们可以用Kosaraju算法(在书上看到的),算法步骤如下。

1、任选一个点对图进行dfs搜索,记录所有点的反弹顺序,并保存在一个数组a里,先反弹的在前面。

2、倒转每一条边的方向。

3、把a数组倒过来搜一遍,遇到没有被标记的点就对这个点进行dfs,dfs遍历到的点就是这个点所在的环。记录每一个环中点的数量,并把它们记入答案。


T3:直接找规律。比赛时以为自己不会,其实再仔细想想就可以了。下次比赛时要认真思考,不要轻易放弃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值