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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POJ - 1847 Tram(dijkstra)

發(fā)布時(shí)間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ - 1847 Tram(dijkstra) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:有向圖有N個(gè)點(diǎn),當(dāng)電車進(jìn)入交叉口(某點(diǎn))時(shí),它只能在開關(guān)指向的方向離開。 如果駕駛員想要采取其他方式,他/她必須手動(dòng)更換開關(guān)。當(dāng)駕駛員從路口A駛向路口B時(shí),他/她嘗試選擇將他/她不得不手動(dòng)更換開關(guān)的次數(shù)最小化的路線。

編寫一個(gè)程序,該程序?qū)⒂?jì)算從交點(diǎn)A到交點(diǎn)B所需的最小開關(guān)更改次數(shù)。第i個(gè)交點(diǎn)處的開關(guān)最初指向列出的第一個(gè)交點(diǎn)的方向。

分析:對(duì)于某點(diǎn)i,去往其直接可到達(dá)的點(diǎn)列表中的第一個(gè)點(diǎn)時(shí)不需要更換開關(guān),等價(jià)于邊長為0;而其他的點(diǎn)需要更換開關(guān),等價(jià)于邊長為1。dijkstra裸題。

#include<cstdio> #include<map> #include<iostream> #include<cstring> #include<queue> using namespace std; const int MAXN = 100 + 10; const int INF = 0x3f3f3f3f; struct Edge{int from, to, dist;Edge(int f, int t, int d):from(f), to(t), dist(d){} }; struct HeapNode{int d, u;HeapNode(int dd, int uu):d(dd), u(uu){}bool operator < (const HeapNode&rhs)const{return d > rhs.d;} }; struct Dijkstra{int n, m;vector<int> G[MAXN];vector<Edge> edges;bool done[MAXN];int d[MAXN];int p[MAXN];void init(int n){this -> n = n;for(int i = 1; i <= n; ++i) G[i].clear();edges.clear();}void AddEdge(int from, int to, int dist){edges.push_back(Edge(from, to, dist));m = edges.size();G[from].push_back(m - 1);}void dijkstra(int s){priority_queue<HeapNode> q;for(int i = 1; i <= n; ++i) d[i] = INF;memset(done, false, sizeof done);d[s] = 0;q.push(HeapNode(0, s));while(!q.empty()){HeapNode top = q.top();q.pop();if(done[top.u]) continue;done[top.u] = true;int len = G[top.u].size();for(int i = 0; i < len; ++i){Edge e = edges[G[top.u][i]];if(d[top.u] + e.dist < d[e.to]){d[e.to] = d[top.u] + e.dist;p[e.to] = G[top.u][i];q.push(HeapNode(d[e.to], e.to));}}}} }dij; int main(){int N, A, B;scanf("%d%d%d", &N, &A, &B);dij.init(N);for(int i = 1; i <= N; ++i){int k, x;scanf("%d", &k);for(int j = 0; j < k; ++j){scanf("%d", &x);if(j == 0) dij.AddEdge(i, x, 0);else dij.AddEdge(i, x, 1);}}dij.dijkstra(A);if(dij.d[B] == INF) printf("-1\n");else printf("%d\n", dij.d[B]);return 0; }

  

轉(zhuǎn)載于:https://www.cnblogs.com/tyty-Somnuspoppy/p/9084352.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的POJ - 1847 Tram(dijkstra)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕午夜 | 久草美女| 污污内射在线观看一区二区少妇 | 中国一级大黄大黄大色毛片 | 亚洲成人伦理 | 午夜激情福利视频 | 黑料网在线观看 | 中文字幕永久在线视频 | 成人激情电影在线观看 | 写真福利片hd在线播放 | 欧美视频在线观看一区 | 91亚洲高清 | 超91在线| 午夜在线免费观看视频 | 在线观看免费 | 国产精品伦子伦免费视频 | 天天天天色 | 91视频免费| 婷婷丁香综合网 | www.在线 | 欧美人与野 | 九九超碰| 国产黄网在线观看 | 国产3p在线播放 | 青青草社区 | 爽妇网国产精品 | 免费成人黄色网址 | www.在线观看网站 | 口爆吞精一区二区三区 | 国产三级自拍 | 999久久 | 91av看片 | 丰满岳乱妇一区二区 | 精品久久久中文字幕人妻 | 九九三级 | 温柔少妇的高潮呻吟 | 欧美 日韩 国产 成人 | 午夜激情视频网站 | 免费裸体美女网站 | 69**夜色精品国产69乱 | 男人手机天堂 | 男人久久天堂 | 日本在线视频免费观看 | 亚洲伊人精品 | 日韩少妇内射免费播放18禁裸乳 | 无码人妻精品一区二区三区夜夜嗨 | 波多野结衣在线播放视频 | 国产精品第一 | 丁香五色月 | 青青草原国产视频 | 永久免费无码av网站在线观看 | av一区二区三 | 国产欧美日韩视频 | 五月天av网站 | 国产精品丝袜黑色高跟 | 亚洲一区二区视频在线播放 | 麻豆91精品91久久久 | 大肉大捧一进一出好爽视频动漫 | av簧片| 裸体一区二区三区 | 五月婷婷丁香花 | 一区二区三区亚洲视频 | 成人开心网 | 伊人久操视频 | 另类色综合| 性色av一区二区三区红粉影视 | 国产伦精品一区二区三区视频痴汉 | 伊人中文字幕 | 巨大黑人极品videos精品 | 国产精品一区二区人妻喷水 | 天天躁夜夜躁狠狠是什么心态 | 182tv午夜福利在线观看 | gogo人体做爰大胆视频 | 久99视频| 欧美精品色婷婷五月综合 | 国产另类xxxxhd高清 | 美女试爆场恐怖电影在线观看 | 91丝袜一区在线观看 | 农村寡妇一区二区三区 | 色情毛片 | 窝窝午夜精品一区二区 | 国产欧美一级 | 午夜影院0606| 色呦呦在线播放 | 人妻精品一区二区在线 | 999超碰| 国产在线一区二区 | 美女黄色一级片 | 在线观看www视频 | 欧美极品videos精品 | 午夜视频a| 一级空姐毛片 | 无码人妻丰满熟妇区96 | 中文字幕免费视频观看 | 亚洲国产成人va在线观看天堂 | 老司机午夜av | 国产免费无遮挡吸奶头视频 | 欧美狠狠爱 | 日本特黄成人 |