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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

POJ 1041 John's trip(欧拉回路)

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

本文鏈接:http://www.cnblogs.com/Ash-ly/p/5398549.html

題意:

  Johnny 有了一臺新車,他想去訪問他所有的朋友(赤裸裸的炫耀?),他的朋友有很多,住在城市中的街道上,于是他就開始規劃自己的路了,在這個城市中有很多街道,他想找一個路徑,這個路徑經過一個街道僅一次,但能訪問完他所有的朋友,他從他父母家出發,并且回來時也必須在他父母家。

  在這個城市中,一共有N(N < 1995)個街道,共有M(M <= 44)個轉折點,轉折點就是一個街道的兩端,每條街道和轉折點的編號都不同。如果在一個轉折點有多種選擇,他會優先選擇街道編號比較小的。

  讓你幫忙寫一個程序,找到這個路徑,如果找不到就打印“Round trip does not exist.”,從 1 號轉折點出發,最后必須回到 1 號轉折點,經過每條街道僅一次,訪問完他所有的朋友,街道是雙向的,但是不能掉頭。

思路:

  把城市想象成一個圖,轉折點即是點,街道即是邊,從某一起點出發,訪問所有邊且每條邊僅訪問一次,再回到起點,很自然想到歐拉回路。首先需要判斷是否存在歐拉回路,無向圖的每個點的入度為偶數就一定存在歐拉回路。然后由于是無向圖,在存儲邊的時候需要正反各儲存一次,訪問一條邊,也要同時刪除兩條邊,正反各一條。題目還有求輸出字典序最小的,這里可以在選擇邊的時候每次選擇編號最小的那個遍歷,然后回溯回來時,也是最短的。

代碼:

/* POJ 1041 algs:鏈式前向星(存圖) + 歐拉回路(找圖) time:2016/4/25 */ #include <stdio.h> #include <string.h> #include <iostream> #include <math.h> #include <queue> #include <stack> #include <algorithm> using namespace std; int V,E; const int maxV = 44; const int maxE = 1995; int head[maxV + 7]; int visit[2 * maxE + 7]; //標志邊是否被訪問 int degree[maxV + 7]; //每個點的度 struct EdgeNode {int to;int w; //題目所給邊的編號 int next; }edges[2 * maxE + 7];int Max(int x, int y, int z){ return ( x > y ? (x > z ? x : z) : (y > z ? y : z) ) ; }int isEulur() //是否是歐拉回路 無向圖不含有度數為奇數的點 {for(int i = 1; i <= V; i++)if(degree[i] & 1) return 0;return 1; } void debugio(); void debugG(); void debugvi();stack<int> ansE;//用一個棧來存放答案 void eulurDFS(int now) {for(int i = 1; i <= degree[now]; i++) //每個點可選擇下一個擴展節點的個數 {int min = maxE + 7; //用于找到編號最小邊 int tmpvst = head[now]; //編號最小邊的下標 for(int k = head[now]; k != -1; k = edges[k].next)//在所有相鄰的邊中找編號最小邊 {if(!visit[k] && edges[k].w < min)min = edges[k].w, tmpvst = k;}if(visit[tmpvst] || min == maxE + 7) continue;visit[tmpvst] = 1; //標志找到的邊為已訪問,在鏈式前向星中每條邊被存儲了兩次 tmpvst & 1 ? visit[tmpvst + 1] = 1 : visit[tmpvst - 1] = 1;--degree[now],--degree[edges[tmpvst].to]; //訪問一條邊,則這條邊兩端點的度數各減一、否則TLE!! eulurDFS(edges[tmpvst].to);//訪問編號最小邊 ansE.push(tmpvst); //回溯的過程中記錄答案 } }int main() {//freopen("input.txt", "r", stdin);//freopen("output.txt", "w", stdout);while(true){int x, y;scanf("%d%d", &x, &y);if(!(x || y)) break;E = 0;V = 0;memset(&edges, 0, sizeof(EdgeNode));memset(head, -1, sizeof(head));memset(degree, 0, sizeof(degree));while(x || y){int z;scanf("%d", &z);++E;edges[2 * E - 1].to = y; //無向圖每條邊儲存兩次 edges[2 * E - 1].w = z;edges[2 * E - 1].next = head[x];head[x] = 2 * E - 1;edges[2 * E].to = x;edges[2 * E].w = z;edges[2 * E].next = head[y];head[y] = 2 * E;degree[x]++; //度數 degree[y]++;V = Max(V, x, y); scanf("%d%d", &x, &y);}if(isEulur()){memset(visit, 0, sizeof(visit));eulurDFS(1);int pe = 0;while(!ansE.empty()){printf( pe++ ?" %d":"%d", edges[ansE.top()].w);ansE.pop();}printf("\n");}else //不存在歐拉回路 printf("Round trip does not exist.\n");}return 0; }

?

轉載于:https://www.cnblogs.com/Ash-ly/p/5398549.html

總結

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

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

主站蜘蛛池模板: 精品黑人一区二区三区观看时间 | 成人黄色短片 | 国产精品视屏 | 色多多视频在线观看 | 成人国产精品久久久网站 | 日本888xxxx| 毛片网站有哪些 | 一区二区福利电影 | 成人欧美一区二区三区黑人 | 欧美日韩综合在线 | 美女黄视频大全 | 岛国大片在线观看 | 亚洲视频第一页 | 美丽的姑娘在线观看免费 | 依人久久 | 国产精品视频播放 | av我不卡| 中文字幕免费高清在线观看 | 亚洲av无码精品色午夜果冻不卡 | 丰满人妻翻云覆雨呻吟视频 | 深田咏美在线x99av | 日本黄色三级网站 | 九一精品一区 | 精品一二三区久久aaa片 | 国产人妻精品午夜福利免费 | 日本免费一区二区三区四区 | 日本免费看 | 欧美一区二区激情视频 | 极品蜜桃臀肥臀-x88av | 成人午夜免费视频 | 日日摸夜夜添狠狠添久久精品成人 | 国产成人精品无码免费看在线 | 日韩精品一二三四区 | 麻豆app在线观看 | 国产卡一卡二卡三无线乱码新区 | 麻豆视频成人 | 性感美女被草 | 最新福利视频 | 中文字幕一区二区三区手机版 | 亚洲精选一区二区 | 国产福利在线 | 日本久久网 | 国产精品免费一区二区 | 精品视频一区二区三区 | 锦绣未央在线观看 | 欧美操女人| 18岁毛片| 亚欧洲精品视频在线观看 | 日韩特黄 | 亚洲视频免费在线播放 | 四级黄色片 | 中文字幕在线视频播放 | 欧美少妇bbw | 99久久国产宗和精品1上映 | 国产在线观看免费高清 | 美女操操操 | 国产freexxxx性播放麻豆 | 老司机福利av | 欧美久久一区 | xxxx国产片| 在线免费三级 | 国产无遮挡又黄又爽又色 | 欧美一区二区最爽乱淫视频免费看 | 看黄色a级片 | 双性人bbww欧美双性 | 免费黄视频在线观看 | 色草在线 | 草草免费视频 | 国产国语老龄妇女a片 | 国产污污在线观看 | 熟女人妻aⅴ一区二区三区60路 | 国内一区二区 | 欧美涩涩视频 | 91精产国品一二三区在线观看 | 亚洲精品永久免费 | www.黄色免费| 91精品一区二区三区综合在线爱 | 日韩国产第一页 | 国内精品99 | 一区二区蜜桃 | 男人操女人网站 | 污污网站在线观看 | 人妻精油按摩bd高清中文字幕 | 超碰97人人草 | 欧美女人一区二区 | 黄色一级录像片 | 特级毛片在线观看 | av天天看 | 一级黄色片网址 | 91黄在线看 | 久久久青青 | 久久五月天婷婷 | 免费午夜激情 | 污视频网站在线观看 | 青青自拍视频 | 亚洲国产精品成人综合在线 | 97人妻天天摸天天爽天天 | 国产精品成人免费一区二区视频 | 日本aa在线观看 |