尤拉迴路 無序字母對

2021-10-02 09:43:41 字數 1287 閱讀 3652

無序字母對的題目鏈結

思考:為什麼路徑要倒著存放;

尤拉迴路中的奇度頂點必須是2個或者0個,才可以一筆畫完;

#include

//差值是6;

using

namespace std;

100]

[100];

int flag[

100]

;int book[

100]

;int book2[

100]

[100];

stack<

int> q;

void

dfs(

int x)

} book[x]=1

;//必須倒著存路徑,正著存放反而不對;

q.push

(x);

return;}

intmain()

if(str[0]

>=

'a'&&str[1]

<

'a')

if(str[0]

>=

'a'&&str[1]

>=

'a')

if(str[0]

<

'a'&&str[1]

>=

'a')

}int minn=

999;

queue<

int> qq;

int nottrue=0;

for(

int i=

0;i<

100;i++)}

if(qq.

size()

)//book[minn]=1;

dfs(minn)

;for

(int i=

0;i<

100;i++)}

if(nottrue)

puts

("no solution");

else

while

(!q.

empty()

)}else

}//book[minv]=1;

dfs(minv)

;for

(int i=

0;i<

100;i++)}

if(nottrue)

puts

("no solution");

else

while

(!q.

empty()

)}return0;

}

尤拉迴路 無序字母隊

給定 nnn 個各不相同的無序字母對 區分大小寫,無序即字母對中的兩個字母可以位置顛倒 請構造乙個有 n 1 n 1 n 1 個字母的字串使得每個字母對都在這個字串 現。第一行輸入乙個正整數 nnn。第二行到第 n 1 n 1 n 1 行每行兩個字母,表示這兩個字母需要相鄰。輸出滿足要求的字串。如果...

無序字母對 洛谷1341 尤拉迴路

給定n個各不相同的無序字母對 區分大小寫,無序即字母對中的兩個字母可以位置顛倒 請構造乙個有n 1個字母的字串使得每個字母對都在這個字串中出現。第一行輸入乙個正整數n。以下n行每行兩個字母,表示這兩個字母需要相鄰。輸出滿足要求的字串。如果沒有滿足要求的字串,請輸出 no solution 如果有多種...

洛谷1341 無序字母對(尤拉迴路)

點此看題面 大致題意 給你 n 個各不相同的無序字母對 注意 兩個字母可能相同,被這個坑了好幾次 請構造乙個長度為 n 1 的字串包含每個字母對。這是一道裸的尤拉迴路,只不過是字串版的,步驟較經典版略顯麻煩。依照尤拉迴路的思路,我們先統計出每個字母出現的次數。然後對其中奇點的個數分類討論 若沒有奇點...