热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

POJ2387TiltheCowsComeHome(Spfa)

题意:一头奶牛沿着路标回家,求最短路径。题解:注意处理重边。感觉不错,以后对于无向图就用vector构图,可以

题意:一头奶牛沿着路标回家,求最短路径。
题解:注意处理重边。感觉不错,以后对于无向图就用vector构图,可以省去对重边的处理。对于有向图用记录头结点的边的方式构图。

#include
#include
#include
using namespace std;
#define MAX 10000
#define INF 9999999
struct Edge { int v, w, next; };
Edge edge[MAX];
int head[MAX], E;
int d[MAX], inque[MAX];
void spfa ( int n )
{
int u, v, i;
for ( i &#61; 1; i <&#61; n; i&#43;&#43; )
d[i] &#61; INF, inque[i] &#61; 0;
d[n] &#61; 0;
queue que;
que.push(n);
inque[n] &#61; true;
while ( que.empty() &#61;&#61; false )
{
u &#61; que.front();
que.pop(); inque[u] &#61; false;
for (i &#61; head[u]; i !&#61; -1; i &#61; edge[i].next)
{
v &#61; edge[i].v;
if ( d[v] > d[u] &#43; edge[i].w )
{
d[v] &#61; d[u] &#43; edge[i].w;
if ( inque[v] ) continue;
inque[v] &#61; true;
que.push(v);
}
}
}
}
void add ( int u, int v, int w )
{
edge[E].v &#61; v;
edge[E].w &#61; w;
edge[E].next &#61; head[u];
head[u] &#61; E&#43;&#43;;
}
int main()
{
int T, N, u, v, w;
scanf("%d%d",&T,&N);
memset(head,-1,sizeof(head));
E &#61; 0;
while ( T-- )
{
scanf("%d%d%d",&u,&v,&w);
add ( u, v, w );
add ( v, u, w );
}
spfa ( N );
printf("%d\n",d[1]);
return 0;
}


 


推荐阅读
  • 题目描述:计算从起点到终点的最小能量消耗。如果下一个单元格的风向与当前单元格相同,则消耗为0,否则为1。共有8个可能的方向。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 线段树详解与实现
    本文详细介绍了线段树的基本概念及其在编程竞赛中的应用,并提供了一个具体的线段树实现代码示例。 ... [详细]
  • 题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ... [详细]
  • 本题涉及一些特殊情况,例如黑白块数不相等的情况,这些情况不满足二分性质。对于有解的情况,可以通过特定公式直接计算出结果。本文将详细介绍如何使用网络流来解决这类问题。 ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • Hanks博士是一位著名的生物技术专家,他的儿子Hankson对数学有着浓厚的兴趣。最近,Hankson遇到了一个有趣的数学问题,涉及求解特定条件下的正整数x,而不使用传统的辗转相除法。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 我自己做了一个网站图片的抓取,感觉速度有点慢抓取4000张图片可能得用15分钟左右的时间,我百度看用线程可以加快抓取,然后创建了5个线程抓取,但是5个线程是同步执行同样的操作一个图片就 ... [详细]
author-avatar
鱼儿37度半_795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有