日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

codility上的问题(26) Hydrogenium 2013

發(fā)布時(shí)間:2025/7/25 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codility上的问题(26) Hydrogenium 2013 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目,挺無聊的。一個(gè)裸的最短路。n個(gè)點(diǎn),你住在0,要去買東西,每個(gè)點(diǎn)有一個(gè)關(guān)門時(shí)間,問能最早買到食物的時(shí)間。有兩點(diǎn)注意 (1)有重邊 (2) 原圖是dicrect連接。。。但不是有向邊,被這個(gè)誤導(dǎo)了。direct當(dāng)直接講……原圖無向圖。后面就是裸的dijkstra算法。

數(shù)據(jù)范圍 點(diǎn) N [0..100] 不知道為啥還有0.。。。

? ? ? ? ? ? ? ? ?連邊 數(shù) M [1..10000]

連邊按3元祖給書 A 里面數(shù)據(jù)范圍 ?[0..99] B 里面數(shù)據(jù)范圍 [0..99]是節(jié)點(diǎn) C [0..10^5]表示從A到B的時(shí)間

還有一個(gè)長度為N的數(shù)組D,表示關(guān)門時(shí)間,數(shù)值范圍 [-1..10^9]表示關(guān)門時(shí)間,-1表示已經(jīng)關(guān)門了。

返回能買到食品的最早時(shí)間,買不到輸出-1。

要求復(fù)雜度 時(shí)間 O(N^2) 空間 O(N^2)。


?

// you can also use includes, for example: // #include <algorithm>int solution(const vector<int> &A, const vector<int> &B, const vector<int> &C, const vector<int> &D) {// write your code here...int n = D.size(),i,ind,m = A.size();if ((n == 0) || (D[0] >= 0)) {return 0;}vector<vector<int> > e;e.resize(n);for (i = 0; i < n; ++i) {e[i].resize(n, -1);}for (i = 0; i < m; ++i) {if ((e[A[i]][B[i]] < 0) || (e[A[i]][B[i]] > C[i])) {e[A[i]][B[i]] = e[B[i]][A[i]] = C[i];}}vector<bool> mark;mark.resize(n, false);vector<int> d;d.resize(n, -1);d[0] = 0;for (;;) {ind = -1;for (i = 0; i < n; ++i) {if ((!mark[i]) && (d[i] >= 0) && ((ind < 0) || (d[ind] > d[i]))) {ind = i;}}if (ind < 0) {break;}if (d[ind] <= D[ind]) {return d[ind];} mark[ind] = true;for (i = 0; i < n; ++i) {if ((!mark[i]) && (e[ind][i] >= 0) && ((d[i] < 0) || (d[i] > d[ind] + e[ind][i]))) {d[i] = d[ind] + e[ind][i];}}}return -1; }


?

?

轉(zhuǎn)載于:https://www.cnblogs.com/pangblog/p/3285861.html

總結(jié)

以上是生活随笔為你收集整理的codility上的问题(26) Hydrogenium 2013的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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