之前很认真地看了用优先队列来实现Dijkstra这块,借鉴了小白书上的代码模板后,便拿这道题来试试水了.这道题的大意就是问你从地点1到地点2有多少条满足条件的路径(假设该路径经过 1->...-> b -> a ->...-> 2,那么d[b]必须小于d[a],其中d[b],d[a]分别是指 b,a 到地点2的最短距离),所以大体做法就是先求出以2为起点的单源最短路径,然后利用深搜dfs(v)表示 v顶点到2的满足以上条件的路径数,最后答案便是dfs(1),当然要加个记忆化.…
最短路+记忆化搜索HDU 1142 A Walk Through the Forest链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142 > 题意:找出不同的路径条数,假如jimmy要从A走到B的话满足jimmy从B到家的距离比从A到家的距离短> 这样我们可以通过最短路算法,找出从家(看成源点)到各个点的最短路径长度,记做D[v]. 然后就可以从起点(office) > dfs,首先从某点i到某点j走得通,然后满足D[j]<D[j],…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1535 Problem Description In the age of television, not many people attend theater performances. Antique Comedians of Malidinesia are aware of this fact. They want to propagate theater and, most of all,…
题意:看样子很多人都把这题目看错了,以为是求最短路的条数.真正的意思是:假设 A和B 是相连的,当前在 A 处, 如果 A 到终点的最短距离大于 B 到终点的最短距离,则可以从 A 通往 B 处,问满足这种的条件的从办公室到家的路径条数. 分析:1.以终点 2 为起点 Dijkstra跑一边最短路,找到所有点到2的最短距离: 2.直接DFS记忆化搜索. 注意:记忆化搜索时的return值,否则此很容易TLE 解法1:O(n^2) #include<iostream> #inclu…