图论之点双&边双

说人话:

边双联通:

a到b的路径上无必经边

点双联通:

a到b的路径上除了a,b没有必经点

tarjan求点双联通:

代码(补图)

割点:

桥:

求点双:强制dfs时不越过割点,即可求出一个块

求边双:dfs时不越过桥

不是割点:减少2n-1

是割点:减少sigmai的大小*其他所有子树的大小

tarjan求桥,然后缩点,会形成一棵树。把树的所有叶子连起来用的边数就是答案

判断:

当且仅当无向图上不含奇环的时候就是二分图

增广路特点:非匹配边比匹配边多一条

寻找增广路:dfs

咕咕咕~

网络流:

最小割最大流定理:网络流的最大流就是整个图的最小割

dinic:类似匈牙利算法的思路,不断寻找当前最大流能加1的方案

直到不能再加

先dfs一遍,确定每个点到源点s的距离,

同时不断加边,维护当前流量

毒瘤操作:减少某条边的流量

所以就减反向边,边权为0,表示从终点到起点可扩充流量

二分图最大匹配怎么用网络流搞?

在左边建一个超级源点s,在右边建一个超级汇点t

s向每个左边的点建一个流量为1的边,右边的点向t建流量为1的边

二分图中间的点不停的寻找能加流量的路,能加就加,知道不能加

总之最大流就是最大匹配

二分图建图小技巧:

如果有x轴,y轴,且有一个坐标(x0,y0)

则就由x0向y0建一条边

国际象棋棋盘:黑白染色(黑的向白的建边)

就是最小覆盖qwq

因为消灭一行x0就是把x0那个点的所有连边都覆盖掉

消灭一列同理

所以打一次抢就相当于覆盖一撮边

最小顶点覆盖=最大匹配数

特别的,一个点也是一个路径

玄学转化二分图:

|v|是顶点个数

为什么上面说的是对的?

假设我们现在覆盖到了u,再从u选择一条出边,到了v,v就不用再来一条路径搞覆盖了。所以每多选一条边,答案就减1.

//图

但是每个点只能选出一条出边,一条入边。对于每个点,我们把它拆成两个,一个出点,一个入点。

所以就这么玄学的转化成了二分图

我们选的边在二分图上就是一个匹配

窝盟每选一条边,那么就有一个点不用再来一条路径进行覆盖了,也就是答案会在原来的基础上-1.所以我们要选出尽可能多的边来覆盖尽可能多的点,设覆盖的点最多为k,则答案就是n-k。

按照上述的转化方式,就是求转化后的二分图最大匹配 

建大约n2条边然后最小路径覆盖???

还真是啊.....

然后就搞完了

匈牙利算法说人话:

找到一个点v:v是非匹配点----->把这条边设为匹配边,再找非匹配边;

v是匹配点-------->走完这条匹配边,到了边的终点,然后再找非匹配边

今天莫得糖果,所以就分白砂糖好了,一人一堆慢慢数有几颗

裸的查分约束,少的向多的建边权为1的边

大于等于:边权为0,小的向大的建边

小于等于:边权为0,还是小的向大的建边

玄学建边方向判断:

现在有这样的一条边

跑最短路

dis[v]<=dis[u]+w

跑最长路:

dis[v]>=dis[u]+w

根据选择跑的路推一推就知道谁想谁建边辣

出现等于:连大于等于,小于等于

最短or最长?

迷惑行为大赏

跑最长路

why?因为要考虑所有的约束条件啊

看一张丑陋的图就知道为什么了

显然dis[3]是2不是1

出现正环就药丸

超级源点的d为0

ysq:论是账本伪造还是刁姹算错???

[l,r]的加起来=k,则xr-xl=k

我们可以处理出前缀和数组s[i],表示前i个数的和

这样就会有s[r]-s[l-1]=k的形式的约束条件

当然了这个前缀和数组也是充满了毒瘤

需要我们跑最短路维护

然后dfs找有没有负环

爆......爆搜?!

仍旧是按照二分图建图的duliu建法,每次就相当于在某一个点的所有出边的边权+1或-1,然后限制就是(x,y)这条边的边权是c

于是我们考虑爆搜(当出现冲突的时候说明无解)

原文地址:https://www.cnblogs.com/lcez56jsy/p/11334312.html

时间: 2024-10-09 09:16:41

图论之点双&边双的相关文章

模拟linux 双网卡双ip,实现multipath多路径连接存储

模拟linux 双网卡双ip,实现multipath多路径连接存储 系统(Centos6.5:oracle-1): eth0:192.168.21.23/24 eth1:172.16.112.17/24 存储Ip:  192.168.21.230 首先要配置iscsi存储,再其次一下操作,我这里配置了两个ISCIS存储 网卡路由配置 由于只能有一个网关,所以要添加静态路由实现双网卡通信 1.编辑网卡eth0,eth1 设置好配置文件,不添加默认网关 # vi /etc/sysconfig/net

双硬盘双系统,光驱位硬盘升级win10注意事项

双硬盘双系统,光驱位硬盘升级win10注意事项 这篇文章就是是接着上一篇文章的备忘,上次说到了双硬盘双系统: http://blog.csdn.net/aaa123524457/article/details/47058437 当然两个硬盘的系统都是win7,但是光驱位的硬盘是以前买笔记本的时候自带的,里面的win7是索尼自带的正版系统,我是打算用它来升级win10:因为工作需要,我把主硬盘位置装了一个更大的硬盘,工作用的是win7系统. 昨天收到win10的升级推送包后,就想都没想就更新了:更

linux 双网关双IP设置

server:CentOS5.8 ip:172.16.8.11 Gateway:172.16.8.1 ip:10.120.6.78 Gateway:10.120.6.1 网卡配置: eth0 point: [[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82576 Gigabit Network Connection DEVICE=eth0 BOOTPROTO=non

第8章双路由双网段网络互通实验(扫盲篇)

第8章双路由双网段网络互通实验(扫盲篇) 一  实验目的 学习如何给路由器接口配置IP.子网掩码 学习如何给路由器配置静态路由 学习如何在GNS3软件下给电脑主机配置IP 二  实验工具 GNS3软件   http://yunpan.cn/cwkDa4MWJwiiV  访问密码 9b1a 思科IOS    http://yunpan.cn/cjDjwg4CXMxpw  访问密码 9c14 三  实验步骤 如图所示在GNS3的模拟环境下,两台路由R1和R2,下面各接1台电脑,要求这2台电脑在不同网

芯飞凌调色温驱动SCR092/S4120//S4225 双驱双色温

芯飞凌调色温驱动  Q Q 2892715427 SCR092/S4120//S4225 双驱双色温 S4225LD 系列开关调色温控制芯片 特点 内置400V 开关管,无需外挂开关管 S4225LD系列芯片是开关调色温的专用芯 外围原件简单,无需对AC 输入检测 片,该芯片内置了400V的开关管,简化了外围电 多个电源同时使用时无逻辑紊乱的问题 路结构.该系列芯片采用了芯飞凌的专利技术,能 内置限压电路,保证可以更宽的工作范围 够既可以最大限度地简化外围的原件个数,又可以 兼容隔离和非隔离的应

基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台

基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台 一.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片Virtex-6 XC6VSX315T-ff1156 FPGA,1个RapidIO Switch.FPGA连接FMC子卡.FPGA片外挂接2簇32bit DDRIII SDRAM,最大容量支持2GB.每片FPGA还通过EMIF总线连接一片TMS320C6678型8核心DSP.所有信号处理FPGA与DSP均

windows2003服务器双线双IP双网卡设置方法

双线双ip很好,网通用户访问网通线路,电信用户访问电信线路.但很多人会选用导入静态路由表,这个办法看似完美,其实问题很多. 1.电信用户如果被解析到网通的ip上,服务器根据路由表会返回电信线路,但用户请求的是网通ip,所以用户什么也得不到,就好像你从一楼买了东西,商场却在二楼给你出货了,而且不告诉你要去二楼拿. 2.就算被正确解析了,但是如果是教育网用户,服务器会因为路由表里没有ip记录而不会返回任何东西. 3.ip不断的都在变化,也有新增的,要不停的维护路由表实在太累. 以上三条中的任意一条的

3-基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台

基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台 一.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片Virtex-6 XC6VSX315T-ff1156 FPGA,1个RapidIO Switch.FPGA连接FMC子卡.FPGA片外挂接2簇32bit DDRIII SDRAM,最大容量支持2GB.每片FPGA还通过EMIF总线连接一片TMS320C6678型8核心DSP.所有信号处理FPGA与DSP均

linux配置双网卡双路由

CentOS双网卡双IP设置   系统环境:CentOS Linux 网络环境: 两个IP地址,10.4.34.31和10.4.35.31,掩码是255.255.255.0, 这两个子网的网关地址分别是10.4.34.1和10.4.35.1.   1. 为网卡eth0配置ip地址10.4.34.31,为网卡eth1配置ip地址为10.4.35.31配置文件为: /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scr

rhel6.5双网卡双网关的配置

由于用户需求是双线,故采用一个网卡配置电信地址,另一个网卡配置联通地址,安装好rhel6.5系统后配置完IP,发现联通地址和电信地址只能有一个可以ping通,若电信地址配置网关,联通地址不配网关,则只能ping通电信地址,反之只能ping通联通地址,若同时配置联通和电信地址则两个都不通.那么在rhel6.5中如何实现双网卡双网关呢? 服务器环境如下: 系统:RHEL6.5 电信IP(TEL):114.80.10.79 netmask 255.255.255.128 gateway 114.80.