【PAT】1030. Travel Plan
来源:互联网 发布:淘宝退款不退货漏洞 编辑:程序博客网 时间:2024/05/26 12:07
考查点:Dijkstra
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#define FOR(i, x, y) for(int i = x; i <= y; i++)#define rFOR(i, x, y) for(int i = x; i >= y; i--)#define MAX 501#define oo 0x3f3f3f3fusing namespace std;int G[MAX][MAX],w[MAX][MAX],pre[MAX],dis[MAX],cost[MAX],vis[MAX],n;void DJ(int s){ fill(dis,dis+MAX,oo); fill(cost,cost+MAX,oo); for(int i=0;i<n;i++)pre[i]=-1; dis[s]=0,cost[s]=0; for(int i=0;i<n;i++){ int MIN=oo; int u=-1; for(int j=0;j<n;j++) { if(vis[j]==0&&dis[j]<MIN){ MIN=dis[j]; u=j; } } if(u==-1) return; vis[u]=1; for(int v=0;v<n;v++){ if(vis[v]==0&&G[u][v]!=oo){ if(dis[v]>G[u][v]+dis[u]){ dis[v]=dis[u]+G[u][v]; cost[v]=cost[u]+w[u][v]; pre[v]=u; }else if(dis[v]==G[u][v]+dis[u]){ if(cost[v]>cost[u]+w[u][v]){ cost[v]=cost[u]+w[u][v]; pre[v]=u; } } } } }}void DFS(int s,int dd){ if(dd==s) { printf("%d",s); return; } DFS(s,pre[dd]); printf(" %d",dd);}int main(){ int m,St,D; fill(G[0],G[0]+MAX*MAX,oo); fill(w[0],w[0]+MAX*MAX,oo); scanf("%d%d%d%d",&n,&m,&St,&D); int u,v; for(int i=0;i<m;i++) { scanf("%d%d",&u,&v); scanf("%d%d",&G[u][v],&w[u][v]); G[v][u]=G[u][v];w[v][u]=w[u][v]; } DJ(St); DFS(St,D); printf(" %d %d\n",dis[D],cost[D]); return 0;}
0 0
- PAT 1030. Travel Plan
- 【PAT】1030. Travel Plan
- 1030. Travel Plan (30)-PAT
- 1030. Travel Plan (30) PAT
- PAT 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- 【PAT】1030. Travel Plan (30)
- pat 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- 【PAT Advanced Level】1030. Travel Plan (30)
- 浙大PAT 1030题 1030. Travel Plan
- PAT 1030. Travel Plan (30) 图论
- PAT A 1030. Travel Plan (30)
- PAT (Advanced) 1030. Travel Plan (30)
- PAT(A) - 1030. Travel Plan (30)
- 【PAT甲级】1030. Travel Plan (30)
- PAT甲级练习1030. Travel Plan (30)
- Android AndroidManifest.xml
- cookie和session
- LeetCode 53 --- Maximum Subarray
- 209. Minimum Size Subarray Sum
- 抢占式和非抢占式的进程调度
- 【PAT】1030. Travel Plan
- 新手使用android studio 从github上导入发生的错误
- 阿里面试回来,想和Java程序员谈一谈
- C#访问遍历二维数组(C#菜鸟篇)
- Python爬虫试水————爬取丽水学院百度贴吧帖子信息&分析
- 深入理解Java虚拟机:类加载器
- salesforce 集成-REST API开发
- LeetCode 54 --- Spiral Matrix
- Linux下修改Mysql的用户root的密码