余利区

 找回密码
 立即注册
楼主: 那就请你滚

算法学习笔记(28): 网络流

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-12-15 16:20:32 | 显示全部楼层
比如说10条联结 割1条 水从割口处流出  最大流就是割口处的流量  假如这个管口的固定宽度是整数n  那么最大流就是n?   

假如割9条  那么只有一条可以流了   是这个意思吧?
回复

使用道具 举报

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-15 16:21:17 | 显示全部楼层
你不管怎么割,只要保证把源点和汇点完全隔绝开,那得到的流就是固定的啊。反正网络中只有那么多流。
回复

使用道具 举报

3

主题

8

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2022-12-15 16:21:32 | 显示全部楼层
我的天啊总算看懂了  今天看了十多篇  整个人都懵逼了!   s到t是加法   割是st中的减法   所以由于有减法的存在  st的加法无法达到最大值   当完全没有减法的时候 加法达到最大值!
回复

使用道具 举报

3

主题

7

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-12-15 16:21:52 | 显示全部楼层
大佬您好,
在ff算法的 dfs函数中,在 for循环结束后,是不是要把 vis[p] 改回0 ?
回复

使用道具 举报

0

主题

8

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-12-15 16:21:57 | 显示全部楼层
这也是重置vis的一种方法,我这里是直接memset统一重置了
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-15 16:22:28 | 显示全部楼层
两层处理似乎都应该存在的。

外层的 memset,是用来彻底重置 vis数组的,以便开始一次崭新的 dfs搜索。

而在 单次dfs搜索流程内,还需要在走错路时,通过 vis[p]=0, 将错路的节点释放出来。
回复

使用道具 举报

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-12-15 16:23:08 | 显示全部楼层
并不需要。你再想一想,如果vis被置为1了,要么可以达到终点,就直接返回值了;要么不能达到终点,那么就没有必要走这条路,
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-12-15 16:23:44 | 显示全部楼层
我看懂了!
在这个问题中,就算不释放错误边上的点,也不会影响后续搜索的
感谢
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-15 16:23:58 | 显示全部楼层
代码里面有while了,inline就没必要加了
回复

使用道具 举报

3

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2022-12-15 16:24:12 | 显示全部楼层
其实都没必要加。现代的编译器在可以内联的时候基本都知道内联了,已经不需要专门标inline了。(这个代码写得比较早,那时候我还不知道这一点)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云顶设计嘉兴有限公司模板设计.

免责声明:本站上数据均为演示站数据,如购买模板可以上DISCUZ应用中心购买,欢迎惠顾.

云顶官方站点:云顶设计 模板原创设计:云顶模板   Powered by Discuz! X3.4© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表