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

2021-07-15 05:42:53 字數 1146 閱讀 7090

題目傳送門

思路:

單詞頭的字母為乙個入讀,尾為乙個出度,先判斷能不能形成尤拉路徑

條件:

因為這是有向圖,起始點的in比out大1,終點的out比in大1,只有這兩個點的in和out是不一樣,其他點的in和out的一樣的,所以同時找到起點。

如果是迴路的話,找個有out的當起點就行,當然要按著字典序!

然後dfs判斷能不能形成,同時找到字典序最小的,具體就是從小的字母往下搜就行了。

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define inf 0x3f3f3f3f

const

int maxn=1001;

int t,m,len,st;

int in[maxn],out[maxn];

bool vis[maxn];

int ord[maxn];

struct wordw[maxn];

bool cmp(word a,word b)

int findst()

else

if(out[i]-in[i]==1)

}if(x1>1||x2>1)return -1;

if(x1==0)}}

return ans;

}bool dfs(int st,int cnt)

return0;}

int main()

st=findst();

if(st==-1)

sort(w,w+m,cmp);

//for(int i=0;iif(!dfs(st,0))

printf("%s",w[ord[0]].s);

for(int i=1;iprintf(".%s",w[ord[i]].s);

printf("\n");

}return

0;}

NYOJ 99 單詞拼接 尤拉迴路

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

nyoj 99 單詞拼接 euler, dfs

記憶體限制 64mb 時間限制 3000ms 特判 no 通過數 7 提交數 14 難度 5 給你一些單詞,請你判斷能否把它們首尾串起來串成一串。前乙個單詞的結尾應該與下乙個單詞的道字母相同。如aloha dogarachnid gopher tiger rat可以拼接成 aloha.arachni...

UVa 10129單詞(尤拉迴路)

題意是輸入n個單詞,是否可以把所有這些單詞排成乙個序列,使得每個單詞的第乙個字母和上乙個單詞的最後乙個字母相同。輸入中可以有重複單詞。由於最後只需要判斷是否能排成這樣的乙個序列,所以沒有輸入單詞後,只需要把首尾字母儲存下來,然後可以dfs深度遞迴。由於可能會有重複單詞,在這裡可以設乙個times陣列...