洛谷P2832 行路難

2021-08-20 14:42:44 字數 769 閱讀 2606

題面

思路:最短路問題。加上疲勞度看似很難,但只要用乙個記錄疲勞度的陣列就好啦,另外還需要記錄路徑。

**:

#include#include#include#include#include#include#define fill( a ) memset( a, 0x3f3f3f, sizeof( a ) )

#define hahaclear( a ) memset( a, 0, sizeof( a ) )

using namespace std;

struct haha edge[200010];

int dis[100010], head[200010];

int num_edge, n, m, cnt, tm, p[200010]; //p陣列是疲勞度

bool vis[100010];

int pre[200010]; //記錄路徑

void add( int from, int to, int dis )

void spfa( int s )

}} }

}void print( int x )

print( pre[x] );

printf( "%d ", x );

return ;

}int main()

spfa( 1 );

printf( "%d\n", dis[n] );

print( n );

return 0;

}

洛谷P4568飛行路線

傳送門 主要思想就是分層圖。分層圖的意思是指,對於每乙個點,可能有多個狀態。那麼對於每種狀態,我們都用一張圖來儲存,那麼就得到了乙個三維的圖。沒一層都是一種狀態。從當前一層到下一層的辦法就是選擇一條邊為0。既然可以選k條,那麼總共就有k 1層。如上圖,無向圖中,有邊1 2,1 5,2 3,2 4,3...

洛谷 P1807最長路

設g為有n個頂點的有向無環圖,g中各頂點的編號為1到n,且當為g中的一條邊時有i j。設w i,j 為邊的長度,請設計演算法,計算圖g中 1,n 間的最長路徑。輸入格式 輸入檔案longest.in的第一行有兩個整數n和m,表示有n個頂點和m條邊,接下來m行中每行輸入3個整數a,b,v 表示從a點到...

洛谷P1768 天路

那是一條神奇的天路誒 把第乙個神犇送上天堂 xdm先生唱著這首 親切 的歌曲,一道猥瑣題目的靈感在腦中出現了。和c sunshine大神商量後,這道猥瑣的題目終於出現在本次試題上了,旨在難到一幫大腦不夠靈活的oier們 johnkram真的不是說你 言歸正傳,小x的夢中,他在 開了一家大型旅遊公司,...