hdu 1428
思路:求出圖的逆向最短路,即每個點到(n,n)的最短路,
然後求出(1,1)到(n,n)的最短路的數量,num[i][j]記錄點(1,1)到(i,j)過程中的最短路的條數,
然後遇到之前求過最短路的點就直接返回,否則求解後再返回。
參考文章
#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 55;
const int inf = 1e9+10;
int zz[4][2] = ;
int n,a[maxn][maxn],vis[maxn][maxn],dis[maxn][maxn];
ll num[maxn][maxn];
void bfs()
} return num[x][y];
}int main(void)
bfs();
printf("%lld\n",dfs(1,1));
} return 0;
}
記憶化搜尋 hdu1428 漫步校園
思路 有幾條可到達的路線是很常規的dp,假設u v 那麼dp u dp v 下一步一定要更加逼近終點而不是遠離終點,用bfs去跑距 n,n 的最短路徑。本題可以與dijkstra堆優化過程中統計最短路條數進行對比 本題 dp i j i,j 到終點的最短路條數 採用記憶化搜尋方式,自下而上 dijk...
HDU 1428 漫步校園 特殊的最短路
這裡需要讀懂題意中的一句話 另外,他考慮從a區域到b區域僅當存在一條從b到機房的路線比任何一條從a到機房的路線更近 否則可能永遠都到不了機房了 這句話的意思是從 1,1 到 n,n 的所有路徑中,只選擇距離最短的路徑,並輸出最短路徑的條數。就是我們找出最短距離後,看看有多少條路到達目的地是最短距離。...
hdu 1142 最短路 記憶化
最短路 記憶化搜尋 hdu 1142 a walk through the forest 題意 找出不同的路徑條數,假如jimmy要從a走到b的話滿足jimmy從b到家的距離比從a到家的距離短 這樣我們可以通過最短路演算法,找出從家 看成源點 到各個點的最短路徑長度,記做d v 然後就可以從起點 o...