P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 题解

博客园同步

原题链接

POJ的链接

简要题意:

给定一张图,求多少个点,每个点都能到达它。

本题作为强连通分量的入门题。

何为强连通分量?有什么用?

下面一一解释。

首先,我们要确认,这道题目如果不用强连通分量而用其它方法(比如说暴力)的话:

时间复杂度将达到 O ( n 2 ) O(n^2) O(n2),此时不易通过,也非正解。

强连通分量是什么?我们来看一张图吧。

我们希望,如果能把环通过某种方式去掉,然后变成有向无环图,就很容易了。

一个强连通分量中的点两两可达。(有向图中)一个点也可以被认为是一个强连通分量。

也就是说,你会发现,一个环 或者 若干个相交的环 都会变成一个强连通分量。

显然它们两两可达,最后图会变成若干个强连通分量。

你会发现, 1 1 1 是一个强连通分量, 2 , 3 , 4 , 5 2,3,4,5 2,3,4,5 是一个强连通分量, 6 6 6, 7 7 7, 8 8 8 均为一个单独的强连通分量。

此时我们可以简化这个图变成:

q x qx qx 表示 x x x 号强连通分量。

此时你发现 q 4 q4 q4 就是答案,里面装的是 7 7 7,所以答案为 1 1 1.

那么问题在于,如何求强连通分量?

回到这个图。

d f n i dfn_i dfni 表示 i i i 的遍历编号(就是我们常说的 “时间戳”), f i f_i fi i i i 号节点属于的强连通分量编号, l o w i low_i lowi i i i 号节点能走到的 d f n dfn dfn 值最小的节点。

一开始 l o w i = i ( 1 ≤ i ≤ n ) low_i = i (1 \leq i \leq n) lowi=i(1in).

首先,我们从 1 1 1 节点开始遍历,走到 2

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 题目P1518 \[USACO2.4\] 两只塔姆沃斯是一道模拟题,题目要求判断Farmer John和两头是否会相遇。解题思路可以分为两种方法。一种方法是记录二者的状态,如果出现了与前面相同的状态则说明陷入了死循环。具体实现步骤可以使用数组来记录Farmer John和两头的坐标、方向等状态信息,然后判断是否出现了重复的状态。另一种方法是利用博弈的思想,如果二者会同时回到一种状态,那么说明他们不会再相遇了,因为这时候他们已经陷入了一种对称性的状态。通过判断是否存在一种线性关系,可以确定二者是否会相遇。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [P1518 [USACO2.4]两只塔姆沃斯 The Tamworth Two](https://blog.csdn.net/TD123456q/article/details/125688037)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [洛谷P1518 [USACO2.4]两只塔姆沃斯 The Tamworth Two 题解 (C/C++)](https://blog.csdn.net/Jason__Jie/article/details/115027619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [(移动方向状态标志)P1518 [USACO2.4]两只塔姆沃斯 The Tamworth Two题解](https://blog.csdn.net/m0_57221330/article/details/119980758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值