POJ 1386 尤拉迴路,尤拉通路,變相DNF

2021-08-13 20:42:40 字數 969 閱讀 5655

/*

此題用了我一天,說明我的基礎知府還是不夠紮實;

考點:尤拉迴路和尤拉通路, 加變相dnf;

前提:要是連通圖;(用dnf,(每一步兩頭搜))

尤拉迴路,要求圖的每乙個點的出度和入度一樣,

尤拉通路,要求圖的起點的出度比入度大1,終點的出度比入度少於1;

*/#include #include #include using namespace std;

const int max = 26;

int map[max][max];

int visit_in[max];

int visit_out[max];

int flag[max];

int m;

char str[1005];

void down(int n);

//圖的遍歷,向上搜

void up(int sa)

} }//圖的遍歷,向下搜

void down(int sb) }}

int main()

//用第乙個點開始遍歷;

--map[sa][sb];

up(sa);

down(sb);

//判斷有點或邊沒有遍歷完的

int res = 0;

for(int i=0; i<26; ++i)

} for(int i=0; (i<26) && (res==0); ++i)

}}

if(res == 1)

//判斷點的出度和入度是否符合要求;

res = 0;

a = b = 0;

for(int i=0; i<26; ++i)

} if(res == 0 || (res == 2 && a == 1 && b==1 ))else

} return 0;

}

poj1386 尤拉迴路)

題目鏈結 解題思路 把每個單詞當成是一條有向邊。把首字母和尾字母當成是節點,如果該字母是乙個單詞的首字母,該字母的入度就加一,如果是尾字母,該字母的出度就加一。然後判斷是否形成尤拉迴路即可。尤拉路徑判斷條件 首先該圖必須是連通圖。對於無向圖,所有頂點的讀都為偶數,對於有向圖,要麼所有頂點的入度等於出...

POJ 1386 判斷尤拉迴路

題意 要開啟一扇門,n個單詞是密碼,n個單詞中,如果乙個單詞的首字母和前乙個單詞的尾字母相同,並且每個單詞都能這麼連起來且只用一次,則門可以開啟,否則不能開啟,現給出單詞,判斷門是否可以開。有向圖尤拉通路充要條件 d為有向圖,d的基圖連通,並且所有頂點的出度與入度都相等 或者除兩個頂點外,其餘頂點的...

尤拉迴路 尤拉通路判斷

尤拉迴路 圖g,若存在一條路,經過g中每條邊有且僅有一次,稱這條路為尤拉路,如果存在一條迴路經過g每條邊有且僅有一次,稱這條迴路為尤拉迴路。具有尤拉迴路的圖成為尤拉圖。判斷尤拉通路是否存在的方法 有向圖 圖連通,有乙個頂點出度大入度1,有乙個頂點入度大出度1,其餘都是出度 入度。無向圖 圖連通,只有...