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

獨立博客: 哲學與程序

哲學與程序

混合圖歐拉路(判斷)

問題:對于一個混合圖,即有有向邊又有無向邊的圖,判斷是否存在一條歐拉回路。
解法(轉):混合圖歐拉回路用的是網絡流。把該圖的無向邊隨便定向,計算每個點的入度和出度。如果有某個點出入度之差為奇數,那么肯定不存在歐拉回路。因為歐拉回路要求每點入度 = 出度,也就是總度數為偶數,存在奇數度點必不能有歐拉回路?,F在每個點入度和出度之差均為偶數。將這個偶數除以2,得x。即是說,對于每一個點,只要將x條邊反向(入>出就是變入,出>入就是變出),就能保證出 = 入。如果每個點都是出 = 入,那么很明顯,該圖就存在歐拉回路?,F在的問題就變成了:該改變哪些邊,可以讓每個點出 = 入?構造網絡流模型。有向邊不能改變方向,直接刪掉。開始已定向的無向邊,定的是什么向,就把網絡構建成什么樣,邊長容量上限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 哲學與程序 閱讀(375) 評論(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久久黄色| 亚洲精品人人| 国产精品黄色| 久久精品亚洲一区二区| 久久精品色图| 日韩一级免费| 亚洲无线观看| 尤物精品在线| 亚洲精品乱码久久久久| 欧美午夜精品久久久久久久| 欧美一级视频| 蜜臀99久久精品久久久久久软件| 99精品欧美| 国产老肥熟一区二区三区| 久久婷婷综合激情| 欧美激情2020午夜免费观看| 亚洲伊人伊色伊影伊综合网| 午夜精品久久久久影视 | 亚洲一区3d动漫同人无遮挡| 一区二区三区不卡视频在线观看| 欧美一级久久| 91久久久精品| 亚洲一区精品电影| 亚洲电影在线看| 亚洲午夜日本在线观看| 亚洲国产精品www| 一区二区三区黄色| 激情欧美一区二区三区| 最新69国产成人精品视频免费| 欧美亚洲综合久久| 在线亚洲免费| 久久人人97超碰国产公开结果| 国产精品永久免费在线| 亚洲国产cao| 海角社区69精品视频| 亚洲神马久久| 99国产精品视频免费观看一公开| 久久中文字幕一区| 欧美性色视频在线| 亚洲第一在线综合在线| 国产欧美日韩另类一区| 99国产精品国产精品久久| 好吊视频一区二区三区四区| 一区二区三区导航| 日韩视频专区| 欧美va亚洲va日韩∨a综合色| 亚洲人久久久| 久久色中文字幕| 久久久久久夜| 国产一区二区三区日韩| 亚洲特黄一级片| 亚洲影院高清在线| 欧美午夜一区二区福利视频| 亚洲激情成人| 亚洲毛片一区二区| 欧美第十八页| 亚洲欧洲精品一区二区| 亚洲成人资源| 久久夜色精品国产| 久久综合九色欧美综合狠狠| 国产欧美亚洲日本| 亚洲欧美在线免费观看| 亚洲欧美视频在线| 国产精品网站视频| 午夜亚洲福利| 久久一二三国产| 狠狠色狠狠色综合人人| 久久亚洲精品伦理| 亚洲国产三级网| av成人黄色| 国产精品高精视频免费| 亚洲一区二区三区四区视频| 午夜视频一区二区| 国产亚洲欧美日韩在线一区| 久久精品国产清高在天天线| 噜噜噜噜噜久久久久久91| 亚洲国产精品视频| 欧美日韩天天操| 亚洲一区二区三区影院| 久久精品一级爱片| 亚洲激情综合| 欧美日韩免费一区二区三区视频| 久久精彩视频| 亚洲国产精品欧美一二99| 欧美激情视频一区二区三区免费| 久久国产福利| 狠狠色狠狠色综合人人| 欧美不卡视频一区发布| 99精品久久| 久久综合网络一区二区| 亚洲人体大胆视频| 国产精品女人网站| 久久色在线观看| 一区二区三区欧美在线| 久久综合色综合88| 亚洲色图在线视频| 激情欧美一区二区| 欧美日韩日日夜夜| 欧美一级久久久久久久大片| 亚洲电影第三页| 久久gogo国模啪啪人体图| 亚洲国产91| 国产欧美日韩综合一区在线播放 | 性色av一区二区三区在线观看| 久久久久一区二区三区| 99精品欧美一区二区蜜桃免费| 国内不卡一区二区三区| 欧美电影免费观看高清| 午夜精品久久久久影视| 欧美激情欧美狂野欧美精品| 午夜精品久久久久久久久久久久久| 久久精品视频免费观看| 99在线热播精品免费| 久久综合中文色婷婷| 亚洲欧美国产毛片在线| 亚洲乱码久久| 在线观看国产日韩| 国产日韩欧美中文| 欧美日韩精品一区视频| 亚洲在线免费| 亚洲人人精品| 亚洲福利专区| 精品不卡视频| 韩日精品在线| 国产欧美精品国产国产专区| 欧美性事免费在线观看| 欧美激情中文字幕乱码免费| 久久免费视频这里只有精品| 欧美亚洲免费高清在线观看| 亚洲视频精选| 一区二区三区波多野结衣在线观看| 亚洲一级电影| 夜夜嗨av色一区二区不卡| 亚洲电影观看| 红桃视频国产精品| 国产视频精品网| 国产日产欧产精品推荐色 | 性伦欧美刺激片在线观看| 999亚洲国产精| 欧美激情第六页| 亚洲电影免费观看高清完整版在线| 亚洲精品资源| 亚洲精品中文字幕有码专区| 亚洲国产欧美久久| 亚洲国产欧美日韩精品| 亚洲国产精品v| 亚洲三级电影全部在线观看高清| 欧美日韩精品久久久| 欧美绝品在线观看成人午夜影视| 亚洲伦理网站| av成人免费在线观看| 一区二区日本视频| 亚洲女ⅴideoshd黑人| 亚洲男人影院| 久久久精品五月天| 欧美va天堂在线| 欧美精品免费视频| 国产精品欧美日韩| 国产午夜精品视频免费不卡69堂| 蜜桃久久精品乱码一区二区| 欧美激情综合在线| 国产精品v欧美精品∨日韩| 国产欧美日韩在线观看| 雨宫琴音一区二区在线| 亚洲靠逼com| 亚洲男同1069视频| 久久精品国产亚洲一区二区三区 | 国产女人aaa级久久久级| 国产欧美一区二区三区在线老狼| 欧美国产综合视频| 欧美三日本三级三级在线播放| 久久综合久久久久88| 欧美精品一区二区三区蜜桃| 国产精品久久久亚洲一区| 国产日韩精品一区二区浪潮av| 欧美精品在线观看一区二区| 国产精品免费看久久久香蕉| 国产主播一区二区三区四区| 亚洲丰满少妇videoshd| 亚洲免费一在线| 蜜桃av一区二区三区| 一本大道久久a久久精二百| 欧美在线|欧美| 欧美日韩三级| 在线观看日韩av电影| 午夜精品久久久久久久久久久久久| 亚洲黄色影片| 欧美在线视频网站| 亚洲国产va精品久久久不卡综合| 久久久97精品| 一本久道久久综合狠狠爱| 午夜精品久久久久久久| 欧美日韩国产三级| 1024亚洲| 久久综合狠狠综合久久综合88| 久久精品国产视频| 日韩视频中文字幕|