当前位置: 首页 > news >正文

设计网站公司咨询亿企邦江苏建站

设计网站公司咨询亿企邦,江苏建站,建网站没有实体公司能建站吗,wordpress资源下载类模板网络流之前一直尝试去学过好多次,但一直都没搞懂。 最近一鼓作气终于会最大流的(fuck) 其实有些时候可能真的一瞬间就理解了些东西(上语文课的时候突然理解增广路了) 也推荐一些学习的博客(我们不生产资料&…

  网络流之前一直尝试去学过好多次,但一直都没搞懂。

  最近一鼓作气终于会最大流的(fuck)

  其实有些时候可能真的一瞬间就理解了些东西(上语文课的时候突然理解增广路了)

  也推荐一些学习的博客(我们不生产资料,我们只是资料的搬运工):

  关于网络流十分形象的解读以及一些基本概念:http://blog.csdn.net/txl199106/article/details/64441994

  关于EK及原理的解释(图很多,虽然有了Dinic要EK也没什么用):https://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html

  Dinic(讲的很好,结构很好,总之很好):https://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html

 

  因为我太弱,搞不来图片,用画图又太丑。

  只能草率的讲一讲思想(个人理解)

  

  EK:虽然没什么用,但复杂度还可以接受。

  1.在残量网络中找到一条从S到T的增广路,如果没有则结束该算法。

  2.更新这条路上的边,正向边减,反向边加上最小值即可。

  3.重复1,2

  其实EK还是很简单的,主要是看代码理解一下:

inline int BFS(int s,int t)
{memset(pre,-1,sizeof(pre));memset(f,0,sizeof(f));int H=0,T=1;q[1]=s; pre[s]=0; f[s]=1e9;while (H<T){int now=q[++H];for (int i=1;i<=n;++i)if (i!=pre[now]&&pre[i]==-1&&c[now][i]>0){pre[i]=now;f[i]=f[now]<c[now][i]?f[now]:c[now][i];q[++T]=i;}}return f[t]?f[t]:-1;
}
inline int max_flow(int s,int t)
{memset(f,0,sizeof(f));int sum=0,inc;while ((inc=BFS(s,t))!=-1){int now=t;while (now!=s){c[pre[now]][now]-=inc;c[now][pre[now]]+=inc;now=pre[now];}sum+=inc;}return sum;
}

 

  Dinic:非常好用的网络流算法,能解决几乎全部的网络流问题。

  同EK相似,只不过加上了分层图的一些概念。

  1.对整张图跑一遍BFS,记录每个点被访问的深度。

  2.通过DFS来找增广路,必须满足被扩展节点的深度为扩展节点深度+1。

  3.重复1,2。

  主要细节有几个:

  1.建边时从0开始编号,每次建两条(一正一反),这样对于每条边i它的反向边就是i^1

  2.如果在DFS时经过一个点已经没有增广路了,那么以后经过该点肯定也没有了。因此直接把深度清零即可。

  3.DFS时最好一次找多条增广路,可以加快速度。

  具体看代码:

inline bool BFS()
{memset(dep,0,sizeof(dep));dep[s]=1; q[1]=s;int H=0,T=1;while (H<T){int now=q[++H];for (int i=head[now];i!=-1;i=e[i].next)if (!dep[e[i].to]&&e[i].c){dep[e[i].to]=dep[now]+1;q[++T]=e[i].to;}}return dep[t];
}
inline int DFS(int now,int dist)
{if (now==t) return dist;int res=0;for (int i=head[now];i!=-1&&dist;i=e[i].next)if (dep[e[i].to]==dep[now]+1&&e[i].c){int dis=DFS(e[i].to,min(dist,e[i].c));dist-=dis; res+=dis;e[i].c-=dis; e[i^1].c+=dis;}if (!res) dep[now]=0;return res;
}
inline int Dinic()
{int sum=0;while (BFS()) sum+=DFS(s,INF);return sum;
}

 

  其实网络流难在建模,但要把板子打熟也是很重要的。

转载于:https://www.cnblogs.com/cjjsb/p/8576030.html

http://www.lbrq.cn/news/2694979.html

相关文章:

  • 萧山做网站的公司哈尔滨百度关键词优化
  • 济南腾飞网络科技有限公司seo网络优化软件
  • wordpress多站点怎么修改域名百度seo网站优化 网络服务
  • 网站建设的分阶段步骤如何自建网站?
  • 帝国做的网站怎么上传图片对百度竞价排名的看法
  • wordpress 转换appaso优化公司
  • 网站的底部导航怎么做seo页面如何优化
  • 云南昆明网站建设长沙网站seo推广公司
  • 网站建设罒金手指下拉壹陆网络推广外包内容
  • 企业免费网站建设做网站需要准备什么
  • 网站建设对图片有哪些要求佛山网站建设
  • 注册网站的流程网站seo是什么意思
  • 河南省建设工程质监总站网站seo程序
  • 美女网站做国外广告怎么样网站备案查询工信部官网
  • wordpress多站点批量添加网站排名查询软件
  • 上海做网站推广公司百度搜索引擎营销案例
  • 西部数据网站管理助手v3.0推广网站有效的免费方法
  • 网站免费下载软件佛山百度关键词排名
  • 做seo推广公司网站郑州抖音推广
  • 网站建设公司厂人大常委会委员长
  • 牛商网做网站怎么样app优化
  • 做高端网站的网络公司网站服务器搭建
  • 物流网络化seo网站排名优化公司
  • 深圳企业企业网站建设下载百度2023最新版安装
  • 网站后台安全密码seo的优化方案
  • 免费做网页的网站杭州百度快速排名提升
  • 做网站如何抓住客户的需求爱站工具
  • 1核2g 做网站北京网站seo
  • asp.net 做网站源代码深圳网站设计公司
  • 上传wordpress到lampseo怎么优化方法
  • Mysql——如何做到Redolog崩溃后恢复的
  • Flutter权限管理三步曲:检查、申请、处理全攻略
  • 408每日一题笔记 41-50
  • 服务器安全检测与防御技术总结
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-会议记录
  • 飞算 JavaAI -智慧城市项目实践:从交通协同到应急响应的全链路技术革新