[连通度问题,最小割]
2015-10-15 14:28
218 查看
题意:给一个无向图,求其点连通度?(注意输入问题)
思路:
如果只有1个点,那么输出“1”;
如果有0条边,那么输出“0”;
其他情况:用最大流解决。下面讲如何建图:
图的连通度问题是指:在图中删去部分元素(点或边),使得图中指定的两个点s和t不连通(即不存在从s到t的路径),求至少要删去几个元素。
图的连通度分为点连通度和边连通度:
(1)点连通度:只许删点,求至少要删掉几个点(当然,s和t不能删去,这里保证原图中至少有三个点);
(2)边连通度:只许删边,求至少要删掉几条边。
并且,有向图和无向图的点连通度求法不同,因此还要分开考虑。说明:最大流对应的是最小割。
【有向图】:这个其实就是最小割问题。以s为源点,t为汇点建立网络,原图中的每条边在网络中仍存在,容量为1。
【无向图】:需要拆点,每个点都拆成两个点v和v’,并连1条有向边v->v’,容量为1。点v承接原图中所有入边,点v’承接原图中所有出边。那么对于原图每条有向边就得建两条边了,容量无穷,且涉4个新顶点。
【混合图】无向边按无向图处理,有向边按有向图处理。
最后,源点S到汇点,跑一次最大流,就得到了答案。如果无指定ST,那么应该顶下1个S,再穷举其他点作为T。这个S应该如何定就不知道了,时间充裕就穷举S和T,不充裕就找个度最少的为S。
思路:
如果只有1个点,那么输出“1”;
如果有0条边,那么输出“0”;
其他情况:用最大流解决。下面讲如何建图:
图的连通度问题是指:在图中删去部分元素(点或边),使得图中指定的两个点s和t不连通(即不存在从s到t的路径),求至少要删去几个元素。
图的连通度分为点连通度和边连通度:
(1)点连通度:只许删点,求至少要删掉几个点(当然,s和t不能删去,这里保证原图中至少有三个点);
(2)边连通度:只许删边,求至少要删掉几条边。
并且,有向图和无向图的点连通度求法不同,因此还要分开考虑。说明:最大流对应的是最小割。
【有向图】:这个其实就是最小割问题。以s为源点,t为汇点建立网络,原图中的每条边在网络中仍存在,容量为1。
【无向图】:需要拆点,每个点都拆成两个点v和v’,并连1条有向边v->v’,容量为1。点v承接原图中所有入边,点v’承接原图中所有出边。那么对于原图每条有向边就得建两条边了,容量无穷,且涉4个新顶点。
【混合图】无向边按无向图处理,有向边按有向图处理。
最后,源点S到汇点,跑一次最大流,就得到了答案。如果无指定ST,那么应该顶下1个S,再穷举其他点作为T。这个S应该如何定就不知道了,时间充裕就穷举S和T,不充裕就找个度最少的为S。
相关文章推荐
- ios 底部弹出框菜单
- 继承
- 25 Java Array Interview Questions And Answers
- vitamio视频播放库
- getAttribute与getParameter()
- 过滤HTML标签和保留特殊标签
- PHP面试题之文件目录操作
- devstack环境中不能创建cinder volume
- 不同版本的APP,数据库结构变化后该如何处理?
- 如何获取shell命令输出的错误信息?
- Java 学习笔记——反射
- CSS3圆角边框
- java中简单集合框架(二)
- 扩展正则用法小结
- php匹配图片、视频文件、音乐文件的正则表达式
- linux下的C语言开发(gdb调试)
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- EasyUI - datagrid中单元格里编辑控件的单击事件如何获取当前行的index
- iOS 代码添加约束—VFL (AutoLayout)
- Percona Toolkit