poj 1847 Dijakstra 还是低级错误
2013-02-04 18:24
197 查看
//关键是没有读懂题目
#include <stdio.h> #include <stdlib.h> #include <iostream> #include <vector> #define NUM 105 using namespace std; #define INF 0x3f3f3f3f //使用vector必须iostream using namespace std; int flag[NUM]; int dist[NUM]; void init(){ for(int i=0;i<NUM;i++){ flag[i]=0; dist[i]=INF; } } struct Edge{ int to; int cost; }; vector<Edge> edges[NUM]; int main(){ int N,A,B; scanf("%d%d%d",&N,&A,&B); for(int i=1;i<=N;i++){ int num; edges[i].clear(); scanf("%d",&num); for(int ii=0;ii<num;ii++){ int t; scanf("%d",&t); Edge tmp; tmp.to=t; if(ii==0) { tmp.cost=0; } else { tmp.cost=1; } edges[i].push_back(tmp); } } init(); int from=A; dist[from]=0; for(int index=1;index<N;index++){//执行N-1次可以了 flag[from]=1; for(int k=0;k<edges[from].size();k++){ int to =edges[from][k].to; int cost=edges[from][k].cost; if(flag[to]==1)//已访问 continue; if(dist[to]>dist[from]+cost){ dist[to]=cost+dist[from]; } } int min=INF; for(int jj=1;jj<=N;jj++){ if(flag[jj]==0){//没有被标记 if(dist[jj]<min){ from=jj; min=dist[jj]; } } } } if(dist[B]==INF){ printf("-1\n"); return 0; } printf("%d\n",dist[B]); return 0; }
相关文章推荐
- Java软件低级错误(九 ):Java参数传递:传值还是传引用?
- error #2153: expression must have class type(低级错误:看是指针还是对象->和.的使用要正确)
- Java软件低级错误(十 七):对于Map元素的遍历使用entrySet还是KeySet?
- 百度工程师也犯低级错误(有心还是无意)?
- 哈哈,低级错误造成的笑话
- OpenGL编程低级错误范例手册
- 用函数批量创建对象的低级错误
- 异常处理及日志错误信息备忘——都是那么低级的错误,唉~
- 又犯了个低级错误
- 低级错误
- arm-linux-gcc & 一个相当低级的错误
- int 类的计算,不好犯这种低级错误
- 软件编程低级错误总结
- Spring已经添加属性注入了,但是还是报空指针错误 说明
- 一个超低级的错误引起的大问题
- 低级错误之Oracle客户端添加数据
- C++程序设计实践学材系列(11)——1.2.3 见识编程中的“低级”错误
- poj 1847(floyd) Tram
- 最近跟踪网站,发现还是存在"常规网络错误。"
- 软件编程低级错误总结