新冠病毒要回家(次短路)

2021-10-09 07:01:21 字數 1050 閱讀 8763

見了這麼多最短路題,來一道次短路!!!

新冠病毒要回家.

題意:n個點,m條邊,求0到n-1的次短路。

分析:在最短路的基礎上開乙個dis2陣列記錄次短路長度,當需要更新最短路時,把當前最短路的值賦給次短路,然後再更新最短路的值,另外,當前的值比最短路長且比次短路短時,更新次短路的值。

基本**與最短路一致。

**

#include.h>

using namespace std;

#define inf 0x3f3f3f3f

#define ll long long

#define mp make_pair

#define pb push_back

#define __t int t

;scanf

("%d",&

t);while(t

--)const ll mod=

1e9+7;

const int maxn =

1e5+5;

struct edgee[maxn*2]

;struct node};

int n,m;

int cnt =0;

int head[maxn]

;int dis1[maxn]

;int dis2[maxn]

;void

add(int u, int v, int w)

void

dij())

; dis1[0]

=0;while

(!q.

empty()

));}

else

if(dis2[v]

> e[i]

.w + d));

}}}}

int main()

while

(m--

)dij()

;printf

("%d\n"

, dis2[n-1]

);return0;

}

**就這麼簡單,但是感覺碰到變式還是不會做,?

新冠病毒的傳播(bfs)

題目描述 最近新冠病毒疫情非常嚴重,由於我們國家採取了有力的措施,才沒有使疫情進一步的擴大。今天,作為計算機專業的學生,我們來用程式模擬一下各種情況下的新冠病毒傳播情況。現在給定乙個n m的網格,每個網格可以有以下三個值之一 每天,任何與感染人群 在 4 個正方向上 相鄰的健康人都會感染。如果遇到隔...

問題 J 新冠病毒的傳播

題目描述 最近新冠病毒疫情非常嚴重,由於我們國家採取了有力的措施,才沒有使疫情進一步的擴大。今天,作為計算機專業的學生,我們來用程式模擬一下各種情況下的新冠病毒傳播情況。現在給定乙個n m的網格,每個網格可以有以下三個值之一 值 0 代表隔離帶。值 1 代表健康人群。值 2 代表感染人群。每天,任何...

BFS寬度優先搜尋 新冠病毒的傳播

應該是我部落格的第一篇廣度優先搜尋的演算法了吧,之前題目都用的dfs,因為dfs確實比較熟練點,bfs雖然很久之前就知道他是怎麼實現的但是沒怎麼自己真正實踐過 而且以前一聽佇列就頭大,不過最近這方面需求還挺大的 文章首發 寬度優先搜尋 breadth first search 寬度優先搜尋演算法 又...