摘要: 先求一遍最短路,再根据求出来的每一个点到达终点的最短距离,dfs计数View Code #include<iostream>#include<algorithm>using namespace std;const int N =1001;int g[N][N],n,m,dist[N];int ans,dp[N];bool vis[N];void init(){ for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) g[i][j]=INT_MAX;}void Dijkstra(int s){ memset(vis,... 阅读全文
posted @ 2012-03-21 16:03 枕边梦 阅读(161) 评论(0) 推荐(0) 编辑
摘要: Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。(1<n<=1000, 0<m<100000, s != t)Output输出 一行有两个数, 最短距离及其花费。分析:每条路径增加 了一个权值,但还是一道最短路的问题,只需要在更新距离的时候判断一下 阅读全文
posted @ 2012-03-21 14:39 枕边梦 阅读(501) 评论(0) 推荐(0) 编辑