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

獨立博客: 哲學與程序

哲學與程序

混合圖歐拉路(判斷)

問題:對于一個混合圖,即有有向邊又有無向邊的圖,判斷是否存在一條歐拉回路。
解法(轉):混合圖歐拉回路用的是網絡流。把該圖的無向邊隨便定向,計算每個點的入度和出度。如果有某個點出入度之差為奇數,那么肯定不存在歐拉回路。因為歐拉回路要求每點入度 = 出度,也就是總度數為偶數,存在奇數度點必不能有歐拉回路。現在每個點入度和出度之差均為偶數。將這個偶數除以2,得x。即是說,對于每一個點,只要將x條邊反向(入>出就是變入,出>入就是變出),就能保證出 = 入。如果每個點都是出 = 入,那么很明顯,該圖就存在歐拉回路。現在的問題就變成了:該改變哪些邊,可以讓每個點出 = 入?構造網絡流模型。有向邊不能改變方向,直接刪掉。開始已定向的無向邊,定的是什么向,就把網絡構建成什么樣,邊長容量上限1。另新建s和t。對于入 > 出的點u,連接邊(u, t)、容量為x,對于出 > 入的點v,連接邊(s, v),容量為x(注意對不同的點x不同。當初由于不小心,在這里錯了好幾次)。之后,察看是否有滿流的分配。有就是能有歐拉回路,沒有就是沒有。查看流值分配,將所有流量非 0(上限是1,流值不是0就是1)的邊反向,就能得到每點入度 = 出度的歐拉圖。由于是滿流,所以每個入 > 出的點,都有x條邊進來,將這些進來的邊反向,OK,入 = 出了。對于出 > 入的點亦然。那么,沒和s、t連接的點怎么辦?和s連接的條件是出 > 入,和t連接的條件是入 > 出,那么這個既沒和s也沒和t連接的點,自然早在開始就已經滿足入 = 出了。那么在網絡流過程中,這些點屬于“中間點”。我們知道中間點流量不允許有累積的,這樣,進去多少就出來多少,反向之后,自然仍保持平衡。所以,就這樣,混合圖歐拉回路問題,解了。
ZOJ@1992
// 2391682      2011-01-24 10:49:56        Accepted      1992      C++      90      508      redsea
#include<stdio.h>
#include
<math.h>
#include
<algorithm>
#include
<string.h>
using namespace std;
#define N 205
#define MAXN N
#define inf 100000000
int map[N][N];
int flow[N][N];
int max_flow(int n,int mat[][MAXN],int source,int sink,int flow[][MAXN]){ 
    
int pre[MAXN],que[MAXN],d[MAXN],p,q,t,i,j; 
    
if (source==sink) return inf; 
    
for (i=0;i<n;i++
        
for (j=0;j<n;flow[i][j++]=0); 
    
for (;;){ 
        
for (i=0;i<n;pre[i++]=0); 
        pre[t
=source]=source+1,d[t]=inf; 
        
for (p=q=0;p<=q&&!pre[sink];t=que[p++]) 
               
for (i=0;i<n;i++
                
if (!pre[i]&&(j=mat[t][i]-flow[t][i])) 
                     pre[que[q
++]=i]=t+1,d[i]=d[t]<j?d[t]:j; 
                
else if (!pre[i]&&(j=flow[i][t])) 
                 pre[que[q
++]=i]=-t-1,d[i]=d[t]<j?d[t]:j; 
        
if (!pre[sink]) break
        
for (i=sink;i!=source;) 
               
if (pre[i]>0
                flow[pre[i]
-1][i]+=d[sink],i=pre[i]-1
               
else 
                flow[i][
-pre[i]-1]-=d[sink],i=-pre[i]-1
    } 
    
for (i=0;i<n;i++)
        
if(mat[source][i] > flow[source][i])
            
return 0;
    
return 1
}
int main()
{
    
int T, degin[N],degout[N], n, m, x, y, z;
    
int flag;
    scanf(
"%d",&T);
    
while(T--){
        scanf(
"%d%d",&n,&m);
        memset(degin,
0,sizeof(degin));
        memset(degout,
0,sizeof(degout));
        memset(map,
0,sizeof(map));
        
for(int i = 0; i < m; i++){
            scanf(
"%d%d%d",&x,&y,&z);
            degout[x]
++;
            degin[y]
++;
            
if(!z)map[x][y]++;
        }
        flag 
= 0;
        
for(int i = 1; i <= n && !flag; i++){
            
if((degin[i]+degout[i])%2)flag=1;
            
if(degin[i] > degout[i])
                map[i][n
+1= (degin[i]-degout[i])/2;
            
else 
                map[
0][i] = (degout[i]-degin[i])/2;
        }
        
if(flag)
            printf(
"impossible\n");
        
else{
            
if(max_flow(n+2,map,0,n+1,flow))
                printf(
"possible\n");
            
else 
                printf(
"impossible\n");
        }
    }
    
return 0;
}



posted on 2011-01-24 10:51 哲學與程序 閱讀(370) 評論(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>
            一区二区三区欧美日韩| 欧美成人性生活| 一区二区三区偷拍| 免费美女久久99| 国产欧美大片| 亚洲综合色噜噜狠狠| 亚洲韩国一区二区三区| 欧美一区二区视频在线观看| 国产精品久久久久久久久久免费看| 亚洲精品乱码| 亚洲国产美女精品久久久久∴| 久久全球大尺度高清视频| 亚洲精品日韩在线观看| 久久久久国产精品一区| 亚洲欧美中文另类| 国产精品美女一区二区在线观看| 日韩午夜剧场| 欧美国产丝袜视频| 欧美精品www在线观看| 久久亚洲精品视频| 亚洲国产欧美一区二区三区丁香婷| 久久久久一区二区三区四区| 午夜在线播放视频欧美| 国产欧美日韩一区| 欧美激情第三页| 国产精品综合久久久| 美女尤物久久精品| 国产精品国产三级国产普通话三级| 亚洲激情不卡| 欧美不卡在线视频| 欧美激情1区| 亚洲靠逼com| 国产综合色在线| 欧美日韩精品一区| 亚洲一区免费视频| 亚洲精品欧美日韩| 欧美在线观看www| 在线亚洲免费视频| 亚洲二区在线| 亚洲三级免费观看| 国产一区二区三区在线观看视频| 亚洲国产清纯| 亚洲人成绝费网站色www| 欧美一区二区三区在线播放| 久久精品理论片| 亚洲第一色中文字幕| 亚洲高清二区| 欧美色视频一区| 欧美一级淫片播放口| 亚洲欧美日韩精品久久久久| 久久影音先锋| 久久精品久久综合| 午夜在线视频观看日韩17c| 狂野欧美激情性xxxx欧美| 亚洲无线视频| 欧美激情成人在线| 欧美福利精品| 欧美va亚洲va日韩∨a综合色| 国产手机视频一区二区| 久久综合五月| 欧美午夜电影完整版| 久久经典综合| 欧美激情一区二区三区在线视频| 性感少妇一区| 欧美精品久久99| 久久国产精品99精品国产| 亚洲国产精品第一区二区三区 | 亚洲国产一区二区三区a毛片| 亚洲天堂成人| 欧美日韩视频在线一区二区| 亚洲精品午夜| 91久久在线视频| 久久综合九色综合久99| 国产亚洲欧美日韩精品| 亚洲免费在线精品一区| 美女精品国产| 久久久久免费观看| 亚洲欧洲日产国产网站| 欧美日韩一区二区在线播放| 欧美在线视频免费播放| 国产精品视频精品视频| 亚洲小少妇裸体bbw| 久久视频一区| 国产精品播放| 国产精品视频久久| 国产综合激情| 毛片一区二区| 99视频日韩| 亚洲国产午夜| 国产一区二区三区电影在线观看| 久久久久久久久岛国免费| 亚洲精品一区二区三区四区高清| 日韩午夜激情电影| 一区二区冒白浆视频| 免费视频最近日韩| 亚洲免费视频一区二区| 伊人夜夜躁av伊人久久| 亚洲一区二区三区在线| 欧美日本亚洲韩国国产| 欧美一区二区三区视频在线观看| 宅男精品视频| 一区一区视频| 欧美久久久久久久久| 国产视频精品va久久久久久| 亚洲高清电影| 亚洲精品免费在线| 女女同性女同一区二区三区91| 亚洲欧洲av一区二区三区久久| 欧美人妖在线观看| 亚洲免费电影在线| 亚洲第一黄色| 欧美在线视频一区| 老色鬼久久亚洲一区二区 | 欧美一区二区三区免费观看| 国产精品99久久久久久宅男 | 国产欧美日韩亚洲精品| 性欧美暴力猛交69hd| 国产欧美精品va在线观看| 欧美一级在线视频| 中文在线资源观看网站视频免费不卡 | 欧美一区二区视频97| 欧美日韩一区二区三区免费看| 99成人精品| 久久国产主播| 亚洲片区在线| 国产精品视频内| 蜜臀av性久久久久蜜臀aⅴ| 亚洲乱码国产乱码精品精| 欧美一区二区三区四区高清| 136国产福利精品导航| 欧美日韩综合在线| 亚洲欧美日韩中文视频| 欧美大片91| 午夜精品一区二区在线观看| 亚洲三级免费观看| 亚洲视频在线免费观看| 香蕉国产精品偷在线观看不卡| 激情伊人五月天久久综合| 一区二区三区高清在线| 在线播放豆国产99亚洲| 亚洲人成精品久久久久| 免费在线成人av| 久久免费高清视频| 欧美日韩国产123| 国产视频在线观看一区二区| 一区二区三区国产精品| 久久伊人免费视频| 老司机一区二区三区| 久久艳片www.17c.com| 在线免费观看视频一区| 欧美国产视频日韩| 久久久久久黄| 亚洲精品看片| 久久深夜福利| 国产亚洲人成网站在线观看| 羞羞视频在线观看欧美| 亚洲午夜精品久久| 蜜桃av噜噜一区| 亚洲精品一区中文| 夜夜嗨av一区二区三区免费区| 欧美多人爱爱视频网站| 亚洲视频图片小说| 亚洲精品中文字幕有码专区| 国产美女精品视频| 午夜精品久久久久久久男人的天堂 | 国产精品色午夜在线观看| 午夜欧美大尺度福利影院在线看| 亚洲久久在线| 亚洲国产综合在线| 一本到12不卡视频在线dvd| 国内精品久久久久久久影视蜜臀| 久久99伊人| 欧美在线精品免播放器视频| 亚洲欧美bt| 激情国产一区| 亚洲一区二区免费视频| 伊人久久男人天堂| 久久久青草青青国产亚洲免观| 亚洲午夜久久久久久尤物| 欧美精品久久99| 欧美一区二区| 欧美第一黄网免费网站| 久久久精品日韩欧美| 国产有码在线一区二区视频| 久久精品国产69国产精品亚洲| 免费看的黄色欧美网站| 欧美中文字幕第一页| 国产精品毛片a∨一区二区三区|国| 欧美国产91| 国产一区日韩二区欧美三区| 一区二区三区国产精品| 亚洲欧美在线免费观看| 欧美激情女人20p| 亚洲欧美日韩一区二区三区在线观看| 欧美淫片网站| 欧美性猛片xxxx免费看久爱 | 国产精品免费在线| 欧美一区二区三区精品电影| 亚洲最新在线视频| 一区二区精品国产|