nyoj 99 單詞拼接 euler, dfs

2021-09-26 22:00:40 字數 1680 閱讀 6114

記憶體限制:64mb 時間限制:3000ms 特判: no

通過數:7 提交數:14 難度:5

給你一些單詞,請你判斷能否把它們首尾串起來串成一串。

前乙個單詞的結尾應該與下乙個單詞的道字母相同。

如aloha

dogarachnid

gopher

tiger

rat可以拼接成:aloha.arachnid.dog.gopher.rat.tiger

第一行是乙個整數n(0如果存在拼接方案,請輸出所有拼接方案中字典序最小的方案。(兩個單詞之間輸出乙個英文句號".")

如果不存在拼接方案,則輸出

***

複製

2

6aloha

arachnid

doggopher

rattiger

3oak

maple

elm

aloha.arachnid.dog.gopher.rat.tiger

***

c/c++:

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 

8 #include 9 #include 10 #include 11 #include 12

#define eps 1e-6

13using

namespace

std;

1415

intin[30], out[30], my_book[1010], my_route[1010

], n;

1617

struct

node

18my_str[1010

];22

23bool

cmp(node a, node b)

2427

28int

euler()

2939}40

if (my_begin > -1 && my_end > -1) return

my_begin;

41if (my_begin == -1 && my_end == -1)42

46return -1;47

}4849bool dfs(int my_loc_int, int

cnt)

5063}64

return

false;65

}6667int

main()

6894

95/**96

@parm: my_begin 開始位置的首字母對應asc - 'a'

97*/

98int my_begin =euler();

99if (my_begin == -1

)100

104 sort(my_str, my_str +n, cmp);

105/*

*106

判斷是否能找出這樣一條路徑來

107*/

108if (dfs(my_begin, 0

))109

114else

115118

}119

120return0;

121 }

give me help

NYOJ 99 單詞拼接 尤拉迴路

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 給你一些單詞,請你判斷能否把它們首尾串起來串成一串。前乙個單詞的結尾應該與下乙個單詞的道字母相同。如aloha dogarachnid gopher tiger rat可以拼接成 aloha.arachnid.dog.gophe...

NYOJ 99 單詞拼接 尤拉迴路或路徑

題目傳送門 思路 單詞頭的字母為乙個入讀,尾為乙個出度,先判斷能不能形成尤拉路徑 條件 因為這是有向圖,起始點的in比out大1,終點的out比in大1,只有這兩個點的in和out是不一樣,其他點的in和out的一樣的,所以同時找到起點。如果是迴路的話,找個有out的當起點就行,當然要按著字典序!然...

NYOJ 單詞拼接

時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 給你一些單詞,請你判斷能否把它們首尾串起來串成一串。前乙個單詞的結尾應該與下乙個單詞的道字母相同。如aloha dogarachnid gopher tiger rat可以拼接成 aloha.arachnid.dog.gophe...