UVA 12295 最短路 遞推

2021-10-04 17:41:49 字數 664 閱讀 7246

有乙個n*n的矩陣,要求從(1,1)到(n,n)的最短路數量,路徑的權值是所經過元素的和,且路徑與對角線對稱。

由於路徑是對稱的,可以先預處理將右下角的元素加到左上角,那麼就只用計算(1,1)到對角線的最短路數量了,計算最短路可以用dijkstra,要計算數量只需要在dijkstra的過程中遞推一下就好了。

#include#include#include#includeusing namespace std;

const int maxn=1e2+5;

const int mod=1e9+9;

const int inf=0x3f3f3f3f;

int zu[maxn][maxn],n;

int dis[maxn][maxn],num[maxn][maxn];

bool mark[maxn][maxn];

int dir[4][2]=;

void dijkstra()

else if(dis[rr][cc]==dis[r][c]+zu[rr][cc])

num[rr][cc]=(num[rr][cc]+num[r][c])%mod;}}

}int main()

printf("%d\n",ans);

}return 0;

}

uva10986 最短路徑

題目的意思就是 首先給出有幾組測試樣例 每組樣例先是 給 n 點的個數 m 邊的個數 s 起點 t 終點 然後是每條邊 以及權值.求最短路.但是因為點的數量很多,要用優化的dijkstra 優先佇列.劉汝佳書裡的模板差別只有這題是無向圖.include include include include...

uva10801 最短路問題

題目大意 有一層不超過100層的大樓,有n個電梯,它們的速度都不同。而且每個電梯只能到達指定的那些樓層,而且它們都有各自的速度 即上公升一層或下降一層所用的時間 如果乙個人在某層走出電梯,要換乙個電梯乘,那麼他要等60秒 不管要等的是那個電梯,即使是剛剛出來的那個電梯也要等60秒 在0層搭電梯出發時...

uva 10246(最短路變形)

思路 spfa求出每個點到其餘頂點的最短路 最短路上的每個點的val都小於等於起點的val 然後又二維陣列dp來儲存,最後詢問的時候就是列舉中間點i了,min 1 include2 include3 include4 include5 include6 include7 using namespac...