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

獨立博客: 哲學與程序

哲學與程序

混合圖歐拉路(判斷)

問題:對于一個混合圖,即有有向邊又有無向邊的圖,判斷是否存在一條歐拉回路。
解法(轉):混合圖歐拉回路用的是網絡流。把該圖的無向邊隨便定向,計算每個點的入度和出度。如果有某個點出入度之差為奇數,那么肯定不存在歐拉回路。因為歐拉回路要求每點入度 = 出度,也就是總度數為偶數,存在奇數度點必不能有歐拉回路。現在每個點入度和出度之差均為偶數。將這個偶數除以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热软件| 久久天堂av综合合色| 欧美日韩亚洲成人| 国产欧美日韩综合| 亚洲黄色在线观看| 亚洲综合另类| 亚洲第一在线视频| 亚洲婷婷综合色高清在线| 欧美影视一区| 欧美日韩一区二区三区在线| 狠狠色狠狠色综合日日tαg| 黄色亚洲大片免费在线观看| 亚洲午夜一二三区视频| 亚洲国产精品国自产拍av秋霞| 午夜精品福利在线| 欧美电影免费观看高清完整版| 亚洲一区二区三区国产| 久久免费视频一区| 亚洲永久精品国产| 国产女主播视频一区二区| 这里只有精品电影| 麻豆精品一区二区综合av| 亚洲一级一区| 欧美日韩亚洲高清一区二区| 99热这里只有成人精品国产| 免费亚洲一区| 久久久国产一区二区三区| 国产精品极品美女粉嫩高清在线| 欧美日韩亚洲一区二| 亚洲国产精品成人久久综合一区| 欧美成人午夜| 欧美精品乱人伦久久久久久| 亚洲精品中文字幕在线观看| 亚洲国产精品毛片| 欧美日韩亚洲国产一区| 亚洲欧洲99久久| 欧美一区二区三区四区高清| 国产一区二区三区四区三区四 | 国产亚洲人成a一在线v站 | 免费观看成人| 欧美国产在线电影| 亚洲综合导航| 久久久水蜜桃| 一区二区三区av| 欧美一级网站| 亚洲免费高清视频| 亚洲伊人一本大道中文字幕| 伊人久久综合97精品| 亚洲精品视频二区| 国产在线拍偷自揄拍精品| 欧美激情一区二区三级高清视频| 国产精品xxxxx| 美女免费视频一区| 国产精品av久久久久久麻豆网| 久久精品视频在线| 欧美成人日本| 久久都是精品| 欧美三级乱码| 欧美激情中文字幕一区二区| 国产精品一区二区三区久久| 欧美激情一区二区三区| 国产精品天美传媒入口| 欧美激情一级片一区二区| 国产午夜精品视频| 99亚洲一区二区| 最新国产乱人伦偷精品免费网站| 亚洲自拍啪啪| 中文国产亚洲喷潮| 欧美成人免费观看| 免费不卡在线观看| 国产欧美一区二区视频| 99国产精品久久| 亚洲欧洲偷拍精品| 中文国产成人精品| 欧美激情一区三区| 久久狠狠一本精品综合网| 欧美精品一区在线| 欧美大尺度在线观看| 黄色av日韩| 午夜精品成人在线视频| 亚洲欧美国产精品va在线观看| 欧美精品1区| 欧美激情第六页| 亚洲成人中文| 久久婷婷国产综合精品青草| 欧美在线电影| 国产精品成人在线| 99av国产精品欲麻豆| 一区二区三区国产盗摄| 欧美精品久久99| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精彩中文乱码av在线播放| 香蕉久久一区二区不卡无毒影院 | 亚洲综合首页| 欧美伦理在线观看| 亚洲黄网站在线观看| 亚洲三级电影全部在线观看高清| 久久综合999| 欧美激情第10页| 日韩视频免费在线观看| 欧美精品乱人伦久久久久久| 亚洲精品久久久久| 中文亚洲字幕| 国产精品一区二区a| 欧美一区二区三区免费视| 久久视频这里只有精品| 在线看国产一区| 美女图片一区二区| 最新精品在线| 亚洲男女毛片无遮挡| 国产欧美日韩一区二区三区| 欧美在线视频日韩| 欧美电影免费观看| 夜夜嗨av一区二区三区| 国产精品v欧美精品v日韩精品| 午夜伦理片一区| 免费在线欧美黄色| 洋洋av久久久久久久一区| 国产精品日韩精品欧美精品| 久久国产精品99久久久久久老狼| 欧美成年人视频网站| 夜夜嗨av一区二区三区| 国产九九精品视频| 美女福利精品视频| 9色porny自拍视频一区二区| 久久国产精品久久精品国产| 在线免费精品视频| 欧美色视频日本高清在线观看| 亚洲欧美日韩综合aⅴ视频| 巨乳诱惑日韩免费av| 一区二区欧美精品| 国精品一区二区三区| 欧美精品免费观看二区| 欧美有码在线观看视频| 亚洲激情在线观看| 久久久精品日韩欧美| 亚洲精品美女免费| 国产亚洲综合精品| 欧美日韩精品一二三区| 先锋资源久久| 亚洲免费成人av电影| 久热精品视频在线观看| 欧美中文字幕精品| 亚洲免费成人| 久久精品72免费观看| 亚洲美女精品成人在线视频| 国产日韩欧美成人| 欧美日韩免费高清一区色橹橹| 久久久999精品免费| 亚洲性感美女99在线| 91久久精品日日躁夜夜躁国产| 久久久99国产精品免费| 亚洲视频在线观看| 亚洲欧洲一区二区三区久久| 国产日韩欧美精品在线| 欧美日韩精品在线视频| 久久综合网络一区二区| 欧美一区二区国产| 宅男噜噜噜66一区二区| 最新日韩精品| 亚洲电影中文字幕| 免费视频一区| 欧美成人dvd在线视频| 久久久噜噜噜| 久久精品亚洲精品| 久久久国产91| 久久久久国色av免费看影院| 亚洲欧美成人网| 在线亚洲国产精品网站| 欧美中文字幕在线观看| 亚洲国产你懂的| 国产一区二区三区高清 | 亚洲永久精品国产| 洋洋av久久久久久久一区| 亚洲免费av电影| 亚洲国产精品一区二区三区 | 亚洲黄色成人| 亚洲国产高清一区二区三区| 欧美大片免费久久精品三p| 久热成人在线视频| 女人天堂亚洲aⅴ在线观看| 开心色5月久久精品| 久久精品免费播放| 久久综合网hezyo| 免费在线看一区| 欧美激情第一页xxx| 亚洲国产高潮在线观看| 亚洲国产精品久久久久秋霞影院 | 久色婷婷小香蕉久久| 蜜臀久久99精品久久久久久9| 欧美1区3d| 亚洲黄色免费| 一本久久a久久免费精品不卡| 99精品欧美一区二区三区综合在线| 亚洲精品国产精品国自产观看浪潮| 亚洲激情中文1区| 一区二区欧美亚洲| 先锋影音久久久| 麻豆国产精品777777在线| 欧美精品一区二区三区久久久竹菊 |