日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POJ 2337 欧拉回路

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ 2337 欧拉回路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:
如果給出的單詞能夠首尾相接,請按字典序輸出單詞,中間要加’.’
否則輸出三個”*”.
思路:
歐拉回路
記得按字典序排序哦~
加邊的時候要倒著加。(鄰接表遍歷的時候是反著的)

記得清空vis數組(因為這個無腦錯誤WA了好長時間。。。。。)

隨便搞搞 就能過了。 數據不是很強…

#include <cstdio> #include <cstring> #include <algorithm> using namespace std; char s[1005][25]; int first[60],next[1005],tot,top,v[1005]; int cases,n,ansx,ansy,ansz,in[26],out[26],ans[1005]; bool vis[1005],flag,VIS[26]; struct node{char str[25];int length;}edge[1005]; void add(int x,int y,int z){v[z]=y;next[z]=first[x];first[x]=z;} bool cmp(node x,node y){return strcmp(x.str,y.str)>0?0:1;} void dfs(int x){for(int i=first[x];~i;i=next[i])if(!vis[i]){VIS[v[i]]=1;vis[i]=1,dfs(v[i]);ans[++top]=i;} } int main(){scanf("%d",&cases);while(cases--){memset(first,-1,sizeof(first));memset(in,0,sizeof(in));memset(out,0,sizeof(out));memset(vis,0,sizeof(vis));memset(VIS,0,sizeof(VIS));flag=ansx=ansy=ansz=top=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%s",edge[i].str);edge[i].length=strlen(edge[i].str);out[edge[i].str[0]-'a']++;in[edge[i].str[edge[i].length-1]-'a']++;}sort(edge+1,edge+1+n,cmp);for(int i=n;i;i--)add(edge[i].str[0]-'a',edge[i].str[edge[i].length-1]-'a',i);for(int i=0;i<=25;i++){if(in[i]-out[i]==1)ansx++;else if(out[i]-in[i]==1)ansy++;else if(in[i]!=out[i])ansz++;}if(!ansz&&ansx==ansy&&(ansx==0||ansx==1)){int jy;if(ansx==1){for(int i=0;i<26;i++)if(out[i]-in[i]==1){jy=i;break;}}else{for(int i=0;i<26;i++)if(out[i]){jy=i;break;}}VIS[jy]=1;dfs(jy);for(int i=0;i<=25;i++)if((in[i]||out[i])&&!VIS[i])flag=1;}else flag=1;if(!flag){for(int i=top;i>=2;i--)printf("%s.",edge[ans[i]].str);printf("%s\n",edge[ans[1]].str);}else puts("***");} }

轉載于:https://www.cnblogs.com/SiriusRen/p/6532393.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的POJ 2337 欧拉回路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。