L3 011 直搗黃龍(最短路 dfs路徑回溯)

2021-10-10 08:13:34 字數 1419 閱讀 9408

思路最短路+dfs路徑回溯,不難,但是我又被卡了,沒看出來最短距離相等時,路徑數應該是兩者相加(我記得我之前做這類的題目的時候也是這裡被卡,我真是豬腦子(* ̄(oo) ̄))。。。寫部落格紀念一下o(╥﹏╥)o

**

#include

#include

#include

#include

#include

#define pii pair

#define inf 0x3f3f3f3f

using

namespace std;

const

int maxn=

1e5+10;

int n,k,tot,be,en,x,pre[

210]

;int c[

210]

;//記錄城鎮的敵人數量

int dis[

210]

,head[

210]

,cnt;

int path[

210]

;//記錄到這個點的最短路徑有幾條

int kill[

210]

;//記錄殺敵數

int city[

210]

;//記錄經過幾個城市

bool vis[

210]

;string s,ss;

mapint>mp;

map<

int,string>mp2;

struct node

edge[maxn]

;void

init()

void

add(

int u,

int v,

int w)

void

dijkstra

(int s));

city[s]=1

;path[s]=1

;kill[s]

=c[s]

;while

(q.size()

));}

else

if(dis[v]

==dis[now]

+edge[i]

.w)else

if(city[v]

==city[now]+1

)}}}

}}void

print

(int p)

else

}int

main()

for(

int i=

1;i<=k;i++

)dijkstra

(be)

;print

(en)

; cout

' '<<<

' '<;return0;

}

L3 011 直搗黃龍 最短路

l3 011 直搗黃龍 30 分 本題是一部戰爭大片 你需要從己方大本營出發,一路攻城略地殺到敵方大本營。首先時間就是生命,所以你必須選擇合適的路徑,以最快的速度占領敵方大本營。當這樣的路徑不唯一時,要求選擇可以沿途解放最多城鎮的路徑。若這樣的路徑也不唯一,則選擇可以有效殺傷最多敵軍的路徑。輸入第一...

L3 011 直搗黃龍(最短路 dfs路徑回溯)

思路最短路 dfs路徑回溯,不難,但是我又被卡了,沒看出來最短距離相等時,路徑數應該是兩者相加 我記得我之前做這類的題目的時候也是這裡被卡,我真是豬腦子 oo 寫部落格紀念一下o o include include include include include define pii pair de...

L3 011 直搗黃龍

本題是一部戰爭大片 你需要從己方大本營出發,一路攻城略地殺到敵方大本營。首先時間就是生命,所以你必須選擇合適的路徑,以最快的速度占領敵方大本營。當這樣的路徑不唯一時,要求選擇可以沿途解放最多城鎮的路徑。若這樣的路徑也不唯一,則選擇可以有效殺傷最多敵軍的路徑。輸入格式 輸入第一行給出2個正整數n 2 ...