NYOJ 115 城市平乱(Dijkstra入门)
来源:互联网 发布:php 分割 编辑:程序博客网 时间:2024/05/17 07:38
链接:click here
题意:
南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间。
思路:最短路问题入门题:出的数据比较水,看到别人都是用优先队列的Dijkstra实现, 效率提高不少。最短路问题练习太少,这题还是给了一点自信,先这样吧。
参考代码:
#include <string.h>#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;const int Inf=0x3f3f3f3f;const int maxn=1010;int cost[maxn][maxn]; //存图int d[maxn]; //从s出发的最短路径bool used[maxn]; //已经使用过的图int V; //顶点数int city[maxn];void dijkstra(int s){ for(int i=0; i<V; i++) d[i]=cost[s][i]; memset(used,false,sizeof(used)); d[s]=0; //自身权值为0 used[s]=true; while(true) { int v=-1; for(int u=0; u<V; u++) { if(!used[u]&&(v==-1||d[u]<d[v])) v=u; } if(v==-1) break; used[v]=true; for(int u=0; u<V; u++) d[u]=min(d[u],d[v]+cost[v][u]); } //return d[V];}int main(){ int ncase,N,P,Q,i,j; scanf("%d",&ncase); while(ncase--) { int u,v,quan; memset(cost,Inf,sizeof(cost)); scanf("%d%d%d%d",&N,&V,&P,&Q); for(i=0; i<N; i++) scanf("%d",&city[i]); for(i=0; i<P; i++) { scanf("%d%d%d",&u,&v,&quan); if(cost[u][v]>quan) cost[u][v]=cost[v][u]=quan; } int temp=Inf; dijkstra(Q); for(i=0; i<N; i++) { if(temp>d[city[i]]) temp=d[city[i]]; } printf("%d\n",temp); } return 0;}
0 0
- NYOJ 115 城市平乱(Dijkstra入门)
- NYOJ 115 城市平乱(图论Dijkstra)
- NYOJ 115 城市平乱【Dijkstra】
- NYOJ 115城市平乱 【dijkstra】
- nyoj 115 城市平乱(dijkstra 终点当起点)
- nyoj 115 城市平乱(Dijkstra算法求解)
- nyoj 115 城市平乱 dijkstra最短路
- NYOJ 115 城市平乱(最短路--dijkstra)
- NYOJ - 115 - 城市平乱 ( 最短路 Dijkstra )
- 115 城市平乱【dijkstra】
- NYOJ-115城市平乱(图论入门题)
- 城市平乱(dijkstra)
- nyoj 115 城市平乱
- nyoj-115-城市平乱
- nyoj 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ-115 城市平乱
- 05-自定义构造方法和description方法(%@带打印一个对象的时候,会调用这个方法)
- linux shell comm命令的使用
- Android基础_Activity
- Jackson将json字符串转换成泛型List
- IOS 视图层次管理
- NYOJ 115 城市平乱(Dijkstra入门)
- MySQL中sql查询某一列数据是否以汉字或非汉字开头
- adb shell input 命令
- 初学makefile
- Father's literary enlightenment
- Linux防火墙基本知识
- 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
- java中的transient关键字作用
- C++单元测试的一点感悟