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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

NYOJ 20 吝啬的国度 广度优先搜索

發(fā)布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ 20 吝啬的国度 广度优先搜索 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

吝嗇的國度

時間限制:1000?ms ?|? 內(nèi)存限制:65535?KB 難度:3 描述
在一個吝嗇的國度里有N個城市,這N個城市間只有N-1條路把這個N個城市連接起來?,F(xiàn)在,Tom在第S號城市,他有張該國地圖,他想知道如果自己要去參觀第T號城市,必須經(jīng)過的前一個城市是幾號城市(假設(shè)你不走重復(fù)的路)。 輸入
第一行輸入一個整數(shù)M表示測試數(shù)據(jù)共有M(1<=M<=5)組
每組測試數(shù)據(jù)的第一行輸入一個正整數(shù)N(1<=N<=100000)和一個正整數(shù)S(1<=S<=100000),N表示城市的總個數(shù),S表示參觀者所在城市的編號
隨后的N-1行,每行有兩個正整數(shù)a,b(1<=a,b<=N),表示第a號城市和第b號城市之間有一條路連通。
輸出
每組測試數(shù)據(jù)輸N個正整數(shù),其中,第i個數(shù)表示從S走到i號城市,必須要經(jīng)過的上一個城市的編號。(其中i=S時,請輸出-1)
樣例輸入
1 10 1 1 9 1 8 8 10 10 3 8 6 1 2 10 4 9 5 3 7
樣例輸出
-1 1 10 10 9 8 3 1 1 8

前兩天剛學(xué)過圖論中的最短路,今天做這道題,首先想到了用最短路的思想做。寫了一個Bellman-Ford,超時了,原因是頂點數(shù)*邊數(shù)太大。然后用廣搜寫了一下,AC。存儲邊時用了vector,記得每次都要清空vector。

[cpp]?view plaincopy
  • #include<stdio.h>??
  • #include<string.h>??
  • #include<vector>??
  • #include<queue>??
  • using?namespace?std;??
  • const?int?N?=?100010;??
  • int?pre[N],?vis[N],?n,?s;??
  • vector<int>?vec[N];??
  • void?Init()??
  • {??
  • ????for(int?i?=?1;?i?<=?n;?i++)??
  • ????????pre[i]?=?i,?vis[i]?=?0;??
  • ????pre[s]?=?-1;??
  • }??
  • void?bfs()??
  • {??
  • ????queue<int>?Q;??
  • ????Q.push(s);??
  • ????while(!Q.empty())??
  • ????{??
  • ????????int?t?=?Q.front();??
  • ????????Q.pop();??
  • ????????if(vis[t])??
  • ????????????continue;??
  • ????????vis[t]?=?1;??
  • ????????for(int?i?=?0;?i?<?vec[t].size();?i++)??
  • ????????{??
  • ????????????int?p?=?vec[t][i];??
  • ????????????if(!vis[p])??
  • ????????????{??
  • ????????????????pre[p]?=?t;??
  • ????????????????Q.push(p);??
  • ????????????}??
  • ????????}??
  • ????}??
  • }??
  • int?main()??
  • {??
  • ????int?t,?i;??
  • ????scanf("%d",&t);??
  • ????while(t--)??
  • ????{??
  • ????????memset(vec,?0,?sizeof(vec));??
  • ????????scanf("%d%d",&n,&s);??
  • ????????int?a,?b;??
  • ????????for(i?=?0;?i?<?n?-?1;?i++)??
  • ????????{??
  • ????????????scanf("%d%d",&a,&b);??
  • ????????????vec[a].push_back(b);??
  • ????????????vec[b].push_back(a);??
  • ????????}??
  • ????????Init();??
  • ????????bfs();??
  • ????????printf("%d",pre[1]);??
  • ????????for(i?=?2;?i?<=?n;?i++)??
  • ????????????printf("?%d",pre[i]);??
  • ????????printf("\n");??
  • ????}??
  • ????return?0;??
  • }??

  • 后來看討論區(qū),出題人說是把無根樹轉(zhuǎn)化為有根樹,仔細一想,還真是。下面是代碼:

    [cpp]?view plaincopy
  • /*無根樹轉(zhuǎn)有根樹,s即為根*/??
  • #include<stdio.h>??
  • #include<string.h>??
  • #include<vector>??
  • using?namespace?std;??
  • const?int?N?=?100010;??
  • int?pre[N],?n,?s;??
  • vector<int>?vec[N];??
  • void?Init()??
  • {??
  • ????for(int?i?=?1;?i?<=?n;?i++)??
  • ????????pre[i]?=?i;??
  • ????pre[s]?=?-1;??
  • }??
  • void?dfs(int?u,?int?fa)??
  • {??
  • ????int?k?=?vec[u].size();??
  • ????for(int?i?=?0;?i?<?k;?i++)??
  • ????{??
  • ????????int?v?=?vec[u][i];??
  • ????????if(v?!=?fa)??
  • ????????{??
  • ????????????pre[v]?=?u;??
  • ????????????dfs(v,?u);??
  • ????????}??
  • ????}??
  • }??
  • int?main()??
  • {??
  • ????int?t,?i;??
  • ????scanf("%d",&t);??
  • ????while(t--)??
  • ????{??
  • ????????memset(vec,?0,?sizeof(vec));??
  • ????????scanf("%d%d",&n,&s);??
  • ????????int?a,?b;??
  • ????????for(i?=?0;?i?<?n?-?1;?i++)??
  • ????????{??
  • ????????????scanf("%d%d",&a,&b);??
  • ????????????vec[a].push_back(b);??
  • ????????????vec[b].push_back(a);??
  • ????????}??
  • ????????Init();??
  • ????????dfs(s,-1);?//從根節(jié)點開始搜??
  • ????????printf("%d",pre[1]);??
  • ????????for(i?=?2;?i?<=?n;?i++)??
  • ????????????printf("?%d",pre[i]);??
  • ????????printf("\n");??
  • ????}??
  • ????return?0;??
  • } ?
  • 總結(jié)

    以上是生活随笔為你收集整理的NYOJ 20 吝啬的国度 广度优先搜索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美成人免费在线观看视频 | 天天操夜操 | 色干干| 白石茉莉奈中文字幕在 | √8天堂资源地址中文在线 欧美精品在线一区二区 | 在线观看国产精品视频 | 亚洲精品一区二区三区区别 | 欧美色图一区二区三区 | 天天综合av | 国产亚洲精品久久久久四川人 | 国产又粗又深又猛又爽又在线观看 | 亚洲午夜久久久久久久久 | 一区二区成人在线 | 91九色国产在线 | 午夜激情黄色 | 美女黄色av | 波多野结衣在线免费视频 | 中出在线视频 | 亚洲私人网站 | 精品人妻一区二区免费视频 | 噜噜吧噜噜色 | 蜜臀久久99精品久久久久久 | 伊人av网 | 男人午夜天堂 | 欧美国产在线视频 | www亚洲国产 | 亚洲第一成人av | 国产专区av| 欧美不卡高清 | 夜夜爽日日澡人人添 | 手机av免费在线观看 | 人人草在线观看 | 日韩激情一区二区三区 | 欧美色炮 | 在线亚洲区 | 在线免费看黄 | 久久爱综合 | 久久久电影 | 凹凸视频一区二区 | 日韩成年视频 | 国产私人影院 | 亚洲精品无amm毛片 国内一区二区三区 | 中文字幕视频免费 | 少妇精品偷拍高潮白浆 | 黑料网在线观看 | 国产xxxxx在线观看 | 欧美四级在线观看 | 国产麻豆91视频 | 九色porny自拍 | 亚洲精品网站在线 | 777777av| 伊人伊人网 | 亚洲剧情av | 爱爱一级| 亚洲第八页 | 欧美黄色aaa | 极品美女扒开粉嫩小泬 | 午夜影院h | 在线观看麻豆 | 亚洲AV无码成人国产精品色 | 国产成人精品在线播放 | 西野翔之公侵犯中文字幕 | 国产ts在线播放 | 男人插入女人下面的视频 | 亚洲网站免费 | 日韩成人一区二区视频 | 国产香蕉视频在线观看 | 欧美操操操 | 亚洲图片欧美激情 | 99久久精品日本一区二区免费 | 成人精品视频99在线观看免费 | 91精品国自产在线 | 美女屁股无遮挡 | 蜜臀视频在线播放 | 亚洲人成影视 | 少妇特殊按摩高潮惨叫无码 | 少妇系列av | 日本道中文字幕 | 色94色欧美sute亚洲线路二 | 中文字幕av亚洲精品一部二部 | 久久精品香蕉 | 日韩中文字幕免费 | 国产极品在线播放 | 亚洲色图激情小说 | 精品欧美在线 | 国产国语对白 | 欧美真人性野外做爰 | 亚洲欧美另类在线观看 | 国产亚洲成av人片在线观看桃 | 超碰成人网 | 老女人综合网 | 加勒比hezyo黑人专区 | 艳妇臀荡乳欲伦交换h漫 | 91在线播放国产 | 中文字幕丰满孑伦无码专区 | 久久久国产一区二区 | 亚洲欧美小视频 | 好邻居韩国剧在线观看 | 午夜影视在线观看 |