定理ネットワークフローの概要

tyqtyqリンクおかげで不足している場合は、左をクリックしてください

DAGは非循環グラフのカテゴリを指示しました

DAGをカバー$最小パス= | G | - 二部グラフG「最大一致$

最小のパスで全体図の全ての頂点を毎回カバー(パスは点であってもよい):最小のパスカバレッジを定義します


G ':二点$ I_1に元の$ Iの$分割の各点について、I_2の$、元のエッジ$(x、y)が$存在する場合、G' 側の$(X_1、Y_2)$存在します


証明します
   
   
定理:マッチがゼロである場合には、側へのPが存在しないので、最小のパスカバレッジ=はっきりある| G | - マッチ=の最大数| G |は。0に基づいて、一致の数、無端で、即ち、S 1(I1、J2)S側で一致を増加させる場合には、エッジすなわちパスカバレッジグラフGのI接続jの一つは、ありますiとjのパスがカバー数を減らすことができるので、経路を前記上、そのような側面は、それぞれさらに1、パスカバレッジの減少した数と一致するように増加し続け、一致するエッジが増加し続けることができないまで、パスの数がもはやカバーに低減することができません;しかしながら側のみに一致しているために、ここで説明すると、2つの接続点でカバーパスの経路に対応する各エッジ;以下、各接続オーバーレイ2つの頂点との間の経路について説明します一致を縁部にエッジに対応します。上記と同様、パスは2つの頂点間の各接続の各有向辺をカバー 我々は明らかに二部グラフのエッジが一致していない、どちらも以前に、すなわちX及びYは、2つの点に接続されている一致して、またはマッチングを介してこれを行う、サイドJ2に接続された図一致I1に対応するものを作ることができます対応するアートワーク、およびパスカバレッジの矛盾中に2回覆われていた点。これは、それがより引用パスカバレッジ1(の数を減らすために、前述の式は、Sの一致で、すなわち、増加各側面を保持示し、頂点の両側の間のオーバーレイ1つの関係で一致エッジ接続経路を示し上記のリンク)

コード:

#define getpoint(i,X) (X == 1)?(i):(i+n) 
void dfs(int n){
    for(int i=head[n]; i; i=Next[i]){
        int v = ver[i] ; add_new(getpoint(i,1),getpoint(p,2)) ;    
        dfs(v) ;
    }
}
void work(){
    dfs(1) ;
}

おすすめ

転載: www.cnblogs.com/tyqtyq/p/WangLuoLiu.html