两次运用SPFA算法求最短路,所用的地图是相互反向的,采用的是邻接表表示

  1 #include<iostream>
  2 using namespace std;
  3 #include<queue>
  4 #include<cstdio>
  5 #include<cstring>
  6 #define INF 20000000
  7 #define MAXN 1010
  8 struct node
  9 {
 10         int to;
 11         int w;
 12         node * next;
 13 };
 14
 15 node * edge1[MAXN];
 16 node * edge2[MAXN];
 17 int vis[MAXN];
 18 int dist1[MAXN];
 19 int dist2[MAXN];
 20 int N,M,X;
 21 void SPFA(int x,int dist[],node *edge[])
 22 {
 23         int u;
 24         node *temp;
 25         for(int i=1;i<=N;i++)
 26         {
 27                 dist[i]=INF;
 28                 vis[i]=0;
 29         }
 30         queue<int> q;
 31         dist[x]=0;
 32         q.push(x);
 33         while(!q.empty())
 34         {
 35             u=q.front();
 36             q.pop();
 37             vis[u]=0;
 38             temp=edge[u];
 39             while(temp!=NULL)
 40             {
 41                 int v=temp->to;
 42                 if(dist[v]>dist[u]+temp->w)
 43                 {
 44                         dist[v]=dist[u]+temp->w;
 45                         if(!vis[v])
 46                         {
 47                             q.push(v);
 48                             vis[v]=1;
 49                         }
 50                 }
 51               temp=temp->next;
 52             }
 53         }
 54 }
 55 int main()
 56 {
 57     while(scanf("%d%d%d",&N,&M,&X)!=EOF)
 58     {
 59           int a,b,c;
 60           node * temp;
 61           memset(edge1,0,sizeof(edge1));
 62           memset(edge2,0,sizeof(edge2));
 63           for(int i=0;i<M;i++)
 64           {
 65             scanf("%d%d%d",&a,&b,&c);
 66             temp=new  node;
 67             temp->w=c;
 68             temp->to=b;
 69             temp->next=NULL;
 70             if(edge1[a]==NULL) edge1[a]=temp;
 71             else
 72             {
 73                     temp->next=edge1[a];
 74                     edge1[a]=temp;
 75             }
 76             temp=new  node;
 77             temp->w=c;
 78             temp->to=a;
 79             temp->next=NULL;
 80             if(edge2[b]==NULL) edge2[b]=temp;
 81             else
 82             {
 83                     temp->next=edge2[b];
 84                     edge2[b]=temp;
 85             }
 86
 87     }
 88     SPFA(X,dist1,edge1);
 89     SPFA(X,dist2,edge2);
 90     int max=0;
 91     for(int i=1;i<=N;i++)
 92       {
 93            if(max<dist1[i]+dist2[i])
 94           {
 95               max=dist1[i]+dist2[i];
 96         }
 97       }
 98             printf("%d\n",max);
 99
100 }
101     return 0;
102 } 

转载于:https://www.cnblogs.com/myacm/archive/2012/08/10/2631884.html

POJ_3268_Sliver Cow Party结题报告相关推荐

  1. 计算机与音乐课题,泉州实验小学《小学音乐学科教学与信息技术整合的研究》结题报告...

    泉州实验小学<小学音乐学科教学与信息技术整合的研究>结题报告 一.问题提出: 1.忽视音乐性--过分强调音乐故事.人物轶事传闻的介绍,置音乐本身于次要的地位. 教师叙述的语言过多,担心学生 ...

  2. 计算机专业课题 结题报告,计算机结题报告 - 结题报告 - 书业网.doc

    计算机结题报告 - 结题报告 - 书业网 计算机结题报告 - 结题报告 - 书业网 篇一:计算机信息管理专业课题结题报告 高等职业教育计算机类专业建设整体解决 方案的研发与实现 --计算机信息管理专业 ...

  3. 计算机硬件性能关联性,计算机硬件系统组成课堂教学有效研究结题报告.ppt

    计算机硬件系统组成课堂教学有效研究结题报告 <计算机硬件系统组成>课堂教学有效性研究结题报告 广州市天荣中学 熊春霞 一.课题概述 (一)课题研究的背景及意义 在初中信息技术教学中,老师们 ...

  4. 提高学生对计算机学科学习兴趣的研究的结题报告,《如何在体育教学中运用体育游戏》的研究结题报告...

    <如何在体育教学中运用体育游戏>的研究结题报告 一.课题的提出 多媒体教学应用与教学改革有着密切的关系,主要体现为多媒体的先进特性在现代教育思想.教育理论的指导下能够得以充分发挥.多媒体辅 ...

  5. 计算机专业课题 结题报告,《有效技能研究与实践》课题结题报告

    <有效技能研究与实践>课题结题报告 拓展教学技能    促进教师成长 ――庐阳中学<有效技能研究与实践>课题结题报告 一.课题研究的背景和意义 1.课题提出 现代化教育技术在教 ...

  6. 如何检索国家自然科学基金项目信息并下载结题报告

    查询项目编号 1.LetPub国家自然基金项目查询 登录网站,输入检索信息进行项目查询 查找感兴趣的项目编号及项目类型 2.国家自然科学基金共享服务网 登录网站同样可以进行快速检索,但是检索能力不如L ...

  7. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  8. 单片机是指把组成微型计算机的各功能部件即,单片机结题报告.doc

    单片机结题报告.doc 序号单片机原理及应用结题报告姓名学号学院专业2010学年秋季学期摘要单片微型计算机是指多个微型计算机集成在一个芯片上,也就是把组成微型计算机的各种功能部件中央处理器.随机存储器 ...

  9. 关于填报《国家自然科学基金资助项目结题报告》的说明

    一.国家自然科学基金资助项目结束后,项目负责人须按要求认真填报<国家自然科学基金资助项目结题报告>(简称<结题报告>),以此作为资助项目研究工作的重要档案,并作为项目验收和评估 ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 山东大学(威海) - 山魂五队
  2. RocketMQ中的主从复制
  3. GMIS 2017嘉宾王小川:人工智能技术与应用思考
  4. MYSQL timestamp NOT NULL插入NULL的报错问题
  5. ITK:使用多线程过滤图像
  6. 可实现自动设置尺寸的图片上传类
  7. linux下redis的安装和配置
  8. uboot中的mmc命令
  9. 中兴交换机8912E配置
  10. 基于线性回归房价预测散点图和折线图
  11. html下拉菜单几种方式,html下拉菜单的实现方式
  12. 工作笔记(python给excel加密)
  13. 前端开发最基本的3个语言
  14. Python爬虫(第三周)
  15. 蟠桃c语言,【蟠桃记】 (C语言代码)递归法和归纳法
  16. 赵明荣耀鸿蒙,荣耀能升级华为鸿蒙吗赵明正式表态,老用户很幸运
  17. 论文阅读:Personalizing Dialogue Agents via Meta-Learning
  18. Atitit 旅游强县城 名单列表 旅游资源但其实,北上广深大概只占全国面积的0.33%,加上新一线城市,也只是占了全国面积的3%。在剩下的97%的土地上,有着约300个地级市,3000个
  19. Python也可以很暖男之每日发送爱词霸每日一句+日期+农历+天气预报+各种天气指数(更新)
  20. TC数据库相关整理(持续更新)

热门文章

  1. Reverse Linked List
  2. 查看Mat对象的数据的三种方法
  3. SIFT特征提取分析 sift算子
  4. java精确测量文本高度_Android精确测量文本宽高及基线位置的方法
  5. 字符串加括号问题(矩阵乘法组合问题)C++
  6. 第五篇第二节T语言实例开发,百变字符(版本5.3)
  7. 20180925-4 单元测试,结对
  8. Python入门学习笔记13(线程锁与信号量)
  9. 2-数组中重复的数字
  10. spring 整和activemq