网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: 方正贤良

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

[复制链接]

2

主题

4

帖子

8

积分

新手上路

Rank: 1

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

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

使用道具 举报

2

主题

9

帖子

16

积分

新手上路

Rank: 1

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

使用道具 举报

1

主题

7

帖子

13

积分

新手上路

Rank: 1

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

使用道具 举报

3

主题

6

帖子

11

积分

新手上路

Rank: 1

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

使用道具 举报

0

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-12-8 07:35:53 | 显示全部楼层
这也是重置vis的一种方法,我这里是直接memset统一重置了
回复

使用道具 举报

1

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-8 07:36:23 | 显示全部楼层
两层处理似乎都应该存在的。

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

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

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

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

使用道具 举报

1

主题

8

帖子

13

积分

新手上路

Rank: 1

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

使用道具 举报

3

主题

9

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2022-12-8 07:37:22 | 显示全部楼层
代码里面有while了,inline就没必要加了
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-7 21:58 , Processed in 0.203746 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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