1030. Travel Plan (30)
来源:互联网 发布:windows toolkit 编辑:程序博客网 时间:2024/06/06 22:34
Dijkstra
#include<iostream>#include<vector>#include<algorithm>using namespace std;const int INF = 99999999;const int MAX = 1000;int d[MAX],G[MAX][MAX],C[MAX][MAX],cost[MAX],pre[MAX];bool visited[MAX]={false};int n,m,s,e;void dijkstra(int s){fill(d,d+MAX,INF);fill(cost,cost+MAX,INF);d[s]=0,cost[s]=0;for(int i=0;i<n;i++) pre[i]=i; for(int i=0;i<n;i++){int u=-1,mind=INF;for(int j=0;j<n;j++){if(visited[j]==false&&d[j]<mind){mind=d[j];u=j;}}if(u==-1) return;visited[u]=true;for(int v=0;v<n;v++){if(visited[v]==false&&G[u][v]!=INF){if(d[u]+G[u][v]<d[v]){d[v]=d[u]+G[u][v];cost[v]=cost[u]+C[u][v];pre[v]=u;}else if(d[u]+G[u][v]==d[v]&&cost[u]+C[u][v]<cost[v]){cost[v]=cost[u]+C[u][v];pre[v]=u;}}}}} vector<int> path;void DFS(int end){if(end==s){path.push_back(end);return ;}DFS(pre[end]);path.push_back(end);} int main(){fill(G[0],G[0]+MAX*MAX,INF);fill(C[0],C[0]+MAX*MAX,INF);scanf("%d%d%d%d",&n,&m,&s,&e);for(int i=0;i<m;i++){int x,y,length,fee;scanf("%d%d%d%d",&x,&y,&length,&fee);G[x][y]=G[y][x]=length;C[x][y]=C[y][x]=fee;}dijkstra(s);DFS(e);for(int i=0;i<path.size();i++){if(i!=0) printf(" ");printf("%d",path[i]);}printf(" %d %d",d[e],cost[e]);return 0;}
0 0
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- 1030. Travel Plan (30)
- BZOJ1717——[Usaco2006 Dec]Milk Patterns 产奶的模式
- Js学习笔记-事件冒泡、事件捕获、阻止默认行为
- Server Tomcat Server at localhost failed to start解决方案
- CSS3容易忘记的知识点记录(01)
- 绿色版的谷歌浏览器chrome
- 1030. Travel Plan (30)
- httpclient访问网站时设置Accept-Encoding为gzip,deflate返回的结果为乱码的问题
- 欢迎使用CSDN-markdown编辑器
- Java 通过反射获取一个Field对象的泛型类型
- OpenCV中findContours详解
- 用Python functools.wraps实现装饰器
- uCOS-II内核之初始化及启动
- 高精度加减法
- 文章标题