青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

獨立博客: 哲學與程序

哲學與程序

判斷最小割是否唯一 ZOJ@2587

ZOJ@2587
題意:判斷最小割是否唯一。
思路(轉):判斷最小割是否唯一,先求一次最大流,然后在殘留網絡中分別從源匯開始dfs一次,找出最小割[S,T],如果SUT不包含所有點,那么最小割不唯一。假設點i不被SUT包含,那么殘留網絡中s不能到達i,i不能到達t,即進入i的邊和從i出去的邊都滿流,假設某條進入i的邊x滿流,這些流量從若干條邊y流出i,那么,如果選x為割邊,或者選所有對應的y為割邊,不會影響最大流,即最小割容量不變,最小割也就不唯一。
// 2390377      2011-01-21 16:52:22        Accepted      2587      C++      150      3324      redsea
//  Dinic最大流 O(V^2 * E) 
#include<cstdio>
#include
<algorithm>
#include
<cstring>
using namespace std;
#define N 802
#define E 200050
#define typec int                   // type of cost 
const typec inf = 30000000;       // max of cost 
struct edge { 
    
int x, y, nxt; typec c;
}bf[E]; 
int ne, head[N], cur[N], ps[N], dep[N]; 

void addedge(int x, int y, typec c) 
{  
    
// add an arc(x -> y, c); vertex: 0 ~ n-1; 
      bf[ne].x = x; bf[ne].y = y; bf[ne].c = c; 
      bf[ne].nxt 
= head[x]; head[x] = ne++
      bf[ne].x 
= y; bf[ne].y = x; bf[ne].c = 0
      bf[ne].nxt 
= head[y]; head[y] = ne++

typec flow(
int n, int s, int t) 

      typec tr, res 
= 0;
    
int i, j, k, f, r, top; 
    
while (1) { 
        memset(dep, 
-1, n * sizeof(int)); 
           
for (f = dep[ps[0= s] = 0, r = 1; f != r; ) 
            
for (i = ps[f++], j = head[i]; j; j = bf[j].nxt) 
            { 
                 
if (bf[j].c && -1 == dep[k = bf[j].y]){ 
                      dep[k] 
= dep[i] + 1; ps[r++= k; 
                      
if (k == t) { f = r; break; } 
                } 
               } 
        
if (-1 == dep[t]) break
        memcpy(cur, head, n 
* sizeof(int)); 
        
for (i = s, top = 0; ; ) { 
            
if (i == t) { 
                
for (k = 0, tr = inf; k < top; ++k) 
                     
if (bf[ps[k]].c < tr) 
                        tr 
= bf[ps[f = k]].c; 
                
for (k = 0; k < top; ++k) 
                    bf[ps[k]].c 
-= tr, bf[ps[k]^1].c += tr; 
                   res 
+= tr;  i = bf[ps[top = f]].x; 
            } 
            
for  (j=cur[i]; cur[i]; j = cur[i] = bf[cur[i]].nxt) 
                   
if  (bf[j].c && dep[i]+1 == dep[bf[j].y])break
            
if (cur[i]) { 
                   ps[top
++= cur[i]; 
                   i 
= bf[cur[i]].y; 
               } 
               
else { 
                 
if (0 == top) break
                   dep[i] 
= -1; i = bf[ps[--top]].x; 
               } 
           } 
    } 
    
return res; 
}
int cnts, cntt;
int flag1[N], flag2[N];

void dfs1(int v)
{
    flag1[v] 
= 1;
    cnts
++;
    
for(int i = head[v]; i != 0; i = bf[i].nxt){
        
if(flag1[bf[i].y]==0 && bf[i].c)
            dfs1(bf[i].y);
    }
}
void dfs2(int v)
{
    flag2[v] 
= 1;
    cntt
++;
    
for(int i = head[v]; i != 0; i = bf[i].nxt){
        
if(flag2[bf[i].y]==0 && bf[i^1].c)
            dfs2(bf[i].y);
    }
}
int main()
{
    
int n, m, s, t, x, y, c;
    
while(scanf("%d%d%d%d",&n,&m,&s,&t), n||m||s||t)
    {
        memset(head,
0,sizeof(head));
        ne 
= 2;
        
for(int i = 0; i < m; i++){
            scanf(
"%d%d%d",&x,&y,&c);
            x
--,y--;
            addedge(x,y,c);
            addedge(y,x,c);
        }
        s
--;t--;
        flow(n,s,t);
        memset(flag1,
0,sizeof(flag1));
        memset(flag2,
0,sizeof(flag2));
        cnts 
= cntt = 0;
        dfs1(s);
        dfs2(t);
        
if(cnts+cntt!=n)
            printf(
"AMBIGUOUS\n");
        
else printf("UNIQUE\n");
    }
    
return 0;
}


posted on 2011-01-21 17:11 哲學與程序 閱讀(816) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm

導航

公告

歡迎訪問 http://zhexue.sinaapp.com

常用鏈接

隨筆分類(37)

隨筆檔案(41)

Algorithm

最新隨筆

搜索

最新評論

獨立博客: 哲學與程序
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲福利小视频| 久久欧美肥婆一二区| 久久嫩草精品久久久精品一| 亚洲欧美日韩精品| 欧美日韩亚洲视频| 美女91精品| 亚洲国产精品国自产拍av秋霞| 性欧美video另类hd性玩具| 亚洲一区二区在线| 久久成人免费| 欧美77777| 99精品视频免费| 欧美亚洲自偷自偷| 免费一级欧美片在线播放| 欧美另类久久久品| 国产欧美婷婷中文| 亚洲视频欧美视频| 亚洲男女自偷自拍| 久久久精品2019中文字幕神马| 欧美大胆成人| 小嫩嫩精品导航| 久久激情视频| 欧美午夜久久| 在线成人激情黄色| 亚洲曰本av电影| 蜜月aⅴ免费一区二区三区| 亚洲片在线观看| 欧美一级二区| 欧美日韩123| 国产在线视频欧美| 亚洲午夜精品国产| 欧美电影免费观看| 欧美一区二区播放| 欧美视频精品在线观看| 亚洲电影一级黄| 久久精品国产99国产精品| 亚洲日本aⅴ片在线观看香蕉| 欧美中文字幕在线播放| 欧美人与禽猛交乱配| 在线免费不卡视频| 欧美日韩综合在线免费观看| 亚洲三级电影全部在线观看高清| 亚洲私人影院| 麻豆成人综合网| 中文国产成人精品久久一| 久久精品国产69国产精品亚洲| 欧美日韩在线播放| 91久久香蕉国产日韩欧美9色| 欧美影院在线| 日韩午夜激情| 欧美一区二区三区在线免费观看| 亚洲激情视频在线播放| 久久精品国产综合| 国产在线精品成人一区二区三区| 亚洲尤物在线| 亚洲午夜激情在线| 欧美日韩一区二区在线播放| 亚洲高清一区二| 猛男gaygay欧美视频| 久久久精品网| 亚洲国产精品久久久| 你懂的成人av| 久热精品视频在线观看| 亚洲国产精品一区二区久| 牛牛国产精品| 蜜臀久久99精品久久久久久9 | 一本久道综合久久精品| 亚洲欧美国产高清| 国产精品综合| 久久久国产一区二区| 久久精品国产精品亚洲综合| 国产一区二区三区高清播放| 久久综合国产精品台湾中文娱乐网| 久久国产欧美日韩精品| 亚洲高清123| 亚洲精品中文字幕在线观看| 国产精品黄页免费高清在线观看| 欧美一级片久久久久久久| 久久精品一本| 亚洲剧情一区二区| 亚洲一区在线观看视频| 狠狠色丁香久久婷婷综合丁香| 欧美成人一区在线| 欧美日韩高清在线播放| 先锋影音一区二区三区| 欧美在线|欧美| 亚洲精品在线看| 亚洲香蕉网站| 在线看国产一区| 一本久久a久久精品亚洲| 韩日欧美一区| 亚洲作爱视频| 伊人天天综合| 一区二区三区国产精品| 黄网动漫久久久| a4yy欧美一区二区三区| 激情久久久久久| 一区二区av| 亚洲国产欧美一区| 亚洲欧美日产图| 妖精成人www高清在线观看| 午夜精品一区二区三区在线播放| 亚洲国产精品传媒在线观看| 亚洲一区精品电影| 亚洲精品一区二区三区婷婷月 | 中日韩视频在线观看| 国产曰批免费观看久久久| 日韩视频不卡中文| 精品动漫3d一区二区三区免费| 99国产精品久久久久久久久久| 激情欧美一区| 亚洲在线不卡| 亚洲一级黄色av| 欧美成人黄色小视频| 久久蜜桃精品| 国产日韩欧美在线看| 日韩视频二区| 亚洲精品美女在线观看播放| 欧美伊久线香蕉线新在线| 亚洲一区二区三区影院| 欧美日韩dvd在线观看| 欧美高清在线视频观看不卡| 国内精品伊人久久久久av一坑| 亚洲深爱激情| 亚洲尤物影院| 国产精品视频1区| 欧美在线免费观看| 亚洲视频成人| 亚洲作爱视频| 欧美金8天国| 亚洲电影自拍| 亚洲经典自拍| 女生裸体视频一区二区三区| 久久综合一区二区三区| 国产中文一区| 久久裸体视频| 美日韩精品免费观看视频| 国产偷国产偷精品高清尤物| 亚洲一区二区三区午夜| 亚洲免费一级电影| 国产精品大片| 亚洲欧美精品伊人久久| 欧美一级片一区| 国产一区二区三区久久精品| 午夜久久久久| 久久免费偷拍视频| 亚洲第一天堂av| 免费久久久一本精品久久区| 欧美成人在线免费观看| 亚洲国产日日夜夜| 欧美女激情福利| 亚洲午夜精品视频| 久久精品在线免费观看| 亚洲第一搞黄网站| 欧美激情1区| 在线视频日本亚洲性| 午夜性色一区二区三区免费视频| 国产精品尤物福利片在线观看| 亚洲欧美一区二区在线观看| 久久久久久久国产| 亚洲黄色免费网站| 国产精品h在线观看| 午夜欧美大尺度福利影院在线看| 久久中文在线| 99国产精品| 国产一区二区三区在线观看免费视频| 欧美亚洲综合另类| 亚洲国产三级在线| 香蕉乱码成人久久天堂爱免费| 国语自产偷拍精品视频偷| 欧美成人激情视频| 亚洲欧美日韩综合一区| 亚洲春色另类小说| 亚洲永久在线| 亚洲黄色大片| 国产一二三精品| 欧美男人的天堂| 久久国产精品亚洲77777| 亚洲精品孕妇| 欧美1区免费| 久久精品国产精品| 一区二区三区黄色| 在线观看视频一区| 国产精品欧美日韩一区二区| 久久综合九色| 亚洲一区成人| 91久久综合| 久久香蕉精品| 欧美亚洲网站| 正在播放日韩| 亚洲国产一区二区三区高清| 国产日韩在线不卡| 国产精品白丝jk黑袜喷水| 麻豆成人91精品二区三区| 性18欧美另类| 亚洲视频中文| av成人天堂| 亚洲美女精品成人在线视频| 你懂的视频欧美| 性欧美暴力猛交69hd|