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

獨立博客: 哲學(xué)與程序

哲學(xué)與程序

混合圖歐拉路(判斷)

問題:對于一個混合圖,即有有向邊又有無向邊的圖,判斷是否存在一條歐拉回路。
解法(轉(zhuǎn)):混合圖歐拉回路用的是網(wǎng)絡(luò)流。把該圖的無向邊隨便定向,計算每個點的入度和出度。如果有某個點出入度之差為奇數(shù),那么肯定不存在歐拉回路。因為歐拉回路要求每點入度 = 出度,也就是總度數(shù)為偶數(shù),存在奇數(shù)度點必不能有歐拉回路。現(xiàn)在每個點入度和出度之差均為偶數(shù)。將這個偶數(shù)除以2,得x。即是說,對于每一個點,只要將x條邊反向(入>出就是變?nèi)耄?gt;入就是變出),就能保證出 = 入。如果每個點都是出 = 入,那么很明顯,該圖就存在歐拉回路。現(xiàn)在的問題就變成了:該改變哪些邊,可以讓每個點出 = 入?構(gòu)造網(wǎng)絡(luò)流模型。有向邊不能改變方向,直接刪掉。開始已定向的無向邊,定的是什么向,就把網(wǎng)絡(luò)構(gòu)建成什么樣,邊長容量上限1。另新建s和t。對于入 > 出的點u,連接邊(u, t)、容量為x,對于出 > 入的點v,連接邊(s, v),容量為x(注意對不同的點x不同。當(dāng)初由于不小心,在這里錯了好幾次)。之后,察看是否有滿流的分配。有就是能有歐拉回路,沒有就是沒有。查看流值分配,將所有流量非 0(上限是1,流值不是0就是1)的邊反向,就能得到每點入度 = 出度的歐拉圖。由于是滿流,所以每個入 > 出的點,都有x條邊進來,將這些進來的邊反向,OK,入 = 出了。對于出 > 入的點亦然。那么,沒和s、t連接的點怎么辦?和s連接的條件是出 > 入,和t連接的條件是入 > 出,那么這個既沒和s也沒和t連接的點,自然早在開始就已經(jīng)滿足入 = 出了。那么在網(wǎng)絡(luò)流過程中,這些點屬于“中間點”。我們知道中間點流量不允許有累積的,這樣,進去多少就出來多少,反向之后,自然仍保持平衡。所以,就這樣,混合圖歐拉回路問題,解了。
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 哲學(xué)與程序 閱讀(375) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm

導(dǎo)航

公告

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

常用鏈接

隨筆分類(37)

隨筆檔案(41)

Algorithm

最新隨筆

搜索

最新評論

獨立博客: 哲學(xué)與程序
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美v日韩v国产v| 日韩一区二区精品| 99日韩精品| 亚洲日本欧美天堂| 欧美一区二区三区四区在线观看地址| 亚洲日本aⅴ片在线观看香蕉| 亚洲自拍偷拍一区| 一区二区三区日韩在线观看| 久久亚洲影音av资源网| 亚洲综合社区| 欧美日韩在线播放三区四区| 欧美国产日韩免费| 激情视频亚洲| 久久久久欧美| 久久精品视频免费观看| 国产精品久久久久7777婷婷| 亚洲精品视频免费观看| 亚洲三级免费电影| 蜜桃伊人久久| 欧美国产视频在线观看| 在线观看av不卡| 久久免费99精品久久久久久| 久久精品免费电影| 精品51国产黑色丝袜高跟鞋| 久久久国产精品一区| 久久久久国色av免费看影院| 国产视频一区三区| 欧美一区二区三区啪啪| 久久人人九九| 尤物精品国产第一福利三区 | 国产精品99久久久久久人| 亚洲精品久久久久久下一站 | 国产热re99久久6国产精品| 亚洲成人在线免费| 久久久久久久久久久久久9999| 久久精品99无色码中文字幕| 国产一区二区精品久久| 久久成人国产精品| 亚洲午夜精品一区二区| 国产精品jizz在线观看美国| 亚洲性视频网站| 久久国产免费| 亚洲国产精品成人| 欧美国产一区视频在线观看 | 久久精品日韩| 欧美不卡一区| 亚洲网友自拍| 国产一区二区日韩精品| 久久久久免费| 日韩亚洲欧美成人一区| 午夜在线成人av| 伊人久久婷婷| 欧美日韩久久| 欧美一区二区在线免费播放| 欧美高潮视频| 亚洲一二三四久久| 国产综合欧美| 欧美日韩一区二区三区在线看| 在线亚洲+欧美+日本专区| 久久黄色影院| 99re这里只有精品6| 国产精品视频网址| 蜜臀91精品一区二区三区| 宅男噜噜噜66国产日韩在线观看| 久久综合网色—综合色88| 一区二区三区日韩| 在线观看精品一区| 国产精品免费视频xxxx| 老司机精品视频网站| 亚洲一区二区精品在线| 亚洲国产成人精品久久久国产成人一区 | 亚洲伊人久久综合| 欧美不卡激情三级在线观看| 亚洲欧美日韩一区在线观看| 91久久精品www人人做人人爽 | 国产伪娘ts一区| 欧美激情在线播放| 久久国产精品72免费观看| 日韩亚洲国产欧美| 亚洲国产黄色| 久久在线视频| 西瓜成人精品人成网站| 99热这里只有精品8| 亚洲第一综合天堂另类专| 国产精品嫩草久久久久| 欧美精品日韩三级| 久久综合图片| 久久九九国产精品| 欧美一区二区精美| 亚洲一二三级电影| 日韩亚洲成人av在线| 亚洲国产精品一区在线观看不卡| 久久久综合网| 久久精品视频一| 亚洲欧美激情视频| 亚洲午夜未删减在线观看| 亚洲毛片网站| 亚洲精品乱码久久久久久日本蜜臀 | 一区二区三区免费网站| 亚洲精品久久久一区二区三区| 激情91久久| 国内精品久久久久久 | 欧美国产视频一区二区| 久久综合九色欧美综合狠狠| 久久成人资源| 欧美在线视频播放| 欧美伊人久久| 久久精品日产第一区二区三区| 欧美在线free| 午夜免费在线观看精品视频| 亚洲一区二区三区视频播放| 亚洲午夜精品视频| 亚洲男女自偷自拍| 亚洲女人小视频在线观看| 亚洲伊人色欲综合网| 亚洲欧美国产日韩天堂区| 欧美一级专区免费大片| 久久精品国产精品| 六月婷婷一区| 欧美日韩一区二区三区在线观看免| 欧美日本免费一区二区三区| 欧美午夜www高清视频| 欧美午夜在线一二页| 国产精品一级| 一区二区三区在线视频观看| 亚洲国产精品一区二区第一页| 亚洲人www| 亚洲午夜电影在线观看| 欧美综合激情网| 牛牛影视久久网| 亚洲精品在线二区| 亚洲午夜高清视频| 久久久久久久尹人综合网亚洲| 久久综合婷婷| 国产精品久久久久久久久动漫| 国产伊人精品| 亚洲第一偷拍| 亚洲一区激情| 久久欧美中文字幕| 欧美激情1区2区3区| 一区二区三区鲁丝不卡| 香蕉成人伊视频在线观看| 久久香蕉国产线看观看av| 欧美精品www| 国产区欧美区日韩区| 在线成人黄色| 亚洲欧美日韩一区二区三区在线观看 | 国产精品伊人日日| 亚洲福利视频免费观看| 亚洲欧美一区在线| 免费久久99精品国产| 日韩一级在线观看| 久久久久国产精品一区| 欧美性片在线观看| 亚洲国产高清在线| 欧美一区二区三区四区视频| 亚洲国产欧美在线人成| 亚洲综合视频1区| 欧美久久综合| 亚洲国产成人av在线| 性高湖久久久久久久久| 亚洲电影免费观看高清完整版在线观看| 日韩午夜激情| 嫩模写真一区二区三区三州| 国产欧美日韩不卡免费| 一本色道久久精品| 亚洲电影免费观看高清完整版在线| 亚洲一区二区三区在线播放| 欧美激情一区二区三区在线视频观看| 国产日韩欧美综合在线| 一本色道久久加勒比88综合| 欧美成ee人免费视频| 午夜精品久久久久久久男人的天堂| 男人天堂欧美日韩| 伊人蜜桃色噜噜激情综合| 欧美在线观看视频在线| 亚洲一品av免费观看| 欧美精选一区| 日韩午夜在线观看视频| 美女诱惑一区| 久久精品99久久香蕉国产色戒| 国产精品乱码久久久久久| 一本综合精品| 日韩视频在线永久播放| 欧美精品xxxxbbbb| 99精品欧美一区二区三区| 亚洲国产精品久久久久秋霞影院 | 久久在线免费| 在线成人亚洲| 免费在线国产精品| 久久综合给合| 亚洲精品欧美激情| 亚洲国产视频直播| 欧美二区在线看| 亚洲日韩欧美一区二区在线| 亚洲福利在线观看| 欧美日韩国产成人在线免费| 一本久久a久久精品亚洲| 亚洲免费成人av电影| 欧美深夜福利|