PAT刷题日志 2020/2/20

开始图的部分:
第一题:1013 Battle Over Cities (25分)
这个题目大意就是给出一个无向图,现在每次删除其中的一个点,然后问剩余部分需要添加几条边才能连接起来,相当于计算剩余部分的连通区域个数,其实可以用dfs进行遍历,遇到删除点就return停止,然后访问过的点设置为true,然后连通区域个数+1,这样遍历完一遍图就可以统计出来互相独立的连通区域个数。

不过对于这个题我第一想到的是刚学过的并查集,不过由于我是并查集新手,尝试实现的时候并没有达到效果,还好参考了算法笔记豁然开朗。
并查集需要对不同的删除点创建不同的并查集合,然后统计根节点的个数,相对还是比较有意思的。

第二题:1021 Deepest Root (25分)
这个我完全按自己的想法,用了并查集合dfs写出来,提交直接AC,感觉很爽,不过跑出来了900ms,哈哈
在这里插入图片描述
这个题其实也可以不用并查集,也可以用一个flag数组配合dfs进行遍历所有节点,这样也可以判断连通分量。

第三题:1034 Head of a Gang (30分)
这个比较复杂,不仅统计连通分量,还要计算每个的权值以及总的权值,
ohh,我写了至少两个小时,改了bfs和dfs,最终竟然都得了20分,而且错的地方都是一样的。。。。。好吧,超出能力。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值