與其留戀,不如灑脫。 —nemt2018後的首題祭題目來自洛谷p2832,難度(提高+/省選-),自以為應該是(普及/提高-)的黃題。
題目概述:給定一張有向圖,在圖上每進行一次移動,圖的所有邊權都會在原基礎上+1,求算從1到n點的最小邊權和,並輸出這個最短路。
q:那我和節點一樣,也開乙個時間佇列queue< int >t可以嘛?錯誤的spfaa:不可以的,考慮一下,如果加上這樣乙個佇列,那就意味著你的t和q要同時進行操作,換句話說,q執行什麼操作,t也得跟著操作。考慮一種比較普遍的情況,假設到達goal節點可以從a或者b點出發,而從a走累計距離長但我們先遍歷,從b走累計距離短但我們後遍歷,這樣的話到達goal節點的時間到底算是從a還是從b呢。(好吧我表達能力差,意思大概就是這樣不行,而且這樣做只能得40分,就是這一段)
int spfa()
}q.pop(),t.pop();}}
正解#include
#include
#include
#include
#include
using
namespace
std;
int i,j,n,m;
int hd[10001],pre[10001],ans[10001],t[10001];
struct data
a[200001];
int r()
while(ch>='0'&&ch<='9')
return ans;
}int xx,yy,zz,temp;
void add(int x,int y,int z)
queue
q;int dis[10001];
int spfa()
}q.pop();
}}int main()
memset(dis,0x7f7f7f,sizeof(dis));
dis[1]=0;
q.push(1);
spfa();
cout
while(j!=1)
cout
<<1;
for(i=tot;i>=1;i--)
/*5 7
1 5 7
1 2 1
1 4 1
3 5 1
2 3 1
2 4 1
4 5 1
*/
上圖,傳統不能丟。
今天是可愛的埃羅芒阿老師(劃掉)和泉紗霧哦
行路難 開始漫漫程式設計路
大一學習了c語言課程之後,對程式設計還是有些興趣的,用 解決一些小問題很滿足的,尤其是在除錯成功沒有報出奇奇怪怪的錯誤的時候。最興奮的自然是通過了全部的測試樣例,感覺整個人飄飄然嘻嘻!回首大一的c語言課程,真的是入門級的簡單 除了函式 指標 結構體哈 有些是永恆的難點,不管在哪個領域。一門神奇的課在...
洛谷P2832 行路難
題面 思路 最短路問題。加上疲勞度看似很難,但只要用乙個記錄疲勞度的陣列就好啦,另外還需要記錄路徑。include include include include include include define fill a memset a,0x3f3f3f,sizeof a define haha...
最短路(SPFA 前向星
problem description 輸入t,n分別代表有t條通道,和n個地點。接下來t行u,v,w分別表示u地點於v地點之間通道消費,有重複邊 sample input 5 51 2 20 2 3 30 3 4 20 4 5 20 1 5 100 sample output 運用spfa的幾個要...