最短路模板 dij 和 spfa 都可以

spfa:

#include<stdio.h>
#include<string.h>
#include<cstring>
#include<string>
#include<math.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#include<cmath> #define INF 0x3f3f3f3f
#define MAX 4*100105 using namespace std; struct node
{
int u,v,len,next;
}Map[MAX]; int n,m,vis[MAX],dist[MAX],k,a[MAX]; void Add(int u,int v,int len)
{
Map[k].u=u;
Map[k].v=v;
Map[k].len=len;
Map[k].next=a[u];
a[u]=k++;
} void Init()
{
k=1; memset(vis,0,sizeof(vis)); for(int i=0;i<MAX;i++)
{
dist[i]=INF;
a[i]=-1;
}
} int spfa()
{
queue<int>Q; int start=1,k; dist[1]=0;
vis[1]=1;
Q.push(start); while(!Q.empty())
{
start=Q.front();
Q.pop(); vis[start]=0;
for(k=a[start];k!=-1;k=Map[k].next)
{
int v=Map[k].v; if(dist[v] > dist[start]+Map[k].len)
{
dist[v]=dist[start]+Map[k].len; if(!vis[v])
{
vis[v]=1;
Q.push(v);
}
}
}
} return 1;
} int main()
{
int i,j,u,v,len; while(scanf("%d%d",&m,&n)!=EOF)
{
Init(); for(i=1;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&len); Add(u,v,len);
Add(v,u,len);
} int ans=spfa(); if(ans)
printf("%d\n",dist[n]);
} return 0;
} dij:
#include<stdio.h>
#include<string.h>
#include<cstring>
#include<string>
#include<math.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#include<cmath> #define INF 0x3f3f3f3f
#define MAX 1005 using namespace std; int Map[MAX][MAX],vis[MAX],dist[MAX],n,m; int dij()
{
memset(vis,0,sizeof(vis)); int i,j,k,minn; for(i=2;i<=n;i++)
dist[i]=Map[1][i]; vis[1]=1; for(i=1;i<n;i++)
{
minn=INF;
for(j=1;j<=n;j++)
{
if(!vis[j] && minn > dist[j])
{
k=j;
minn=dist[j];
}
} vis[k]=1; for(j=1;j<=n;j++)
{
if(!vis[j] && dist[k] + Map[k][j] < dist[j])
{
dist[j]=dist[k]+Map[k][j];
}
}
} return dist[n];
} int main()
{
int i,j,u,v,len; while(scanf("%d%d",&m,&n)!=EOF)
{ for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
Map[i][j]=INF; for(i=1;i<=m;i++)
{
scanf("%d%d%d",&u,&v,&len); Map[u][v]=Map[v][u]=min(Map[u][v],len);
} int ans=dij(); printf("%d\n",ans);
}
return 0;
}

POJ 2387的更多相关文章

  1. 链式前向星版DIjistra POJ 2387

    链式前向星 在做图论题的时候,偶然碰到了一个数据量很大的题目,用vector的邻接表直接超时,上网查了一下发现这道题数据很大,vector可定会超的,不会指针链表的我找到了链式前向星这个好东西,接下来 ...

  2. hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题

    hdu 2544  求点1到点n的最短路  无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...

  3. POJ 2387 Til the Cows Come Home (图论,最短路径)

    POJ 2387 Til the Cows Come Home (图论,最短路径) Description Bessie is out in the field and wants to get ba ...

  4. POJ.2387 Til the Cows Come Home (SPFA)

    POJ.2387 Til the Cows Come Home (SPFA) 题意分析 首先给出T和N,T代表边的数量,N代表图中点的数量 图中边是双向边,并不清楚是否有重边,我按有重边写的. 直接跑 ...

  5. POJ 2387 Til the Cows Come Home

    题目链接:http://poj.org/problem?id=2387 Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K ...

  6. POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)

    题目连接: http://poj.org/problem?id=2387 Description Bessie is out in the field and wants to get back to ...

  7. poj 2387 Til the Cows Come Home(dijkstra算法)

    题目链接:http://poj.org/problem?id=2387 题目大意:起点一定是1,终点给出,然后求出1到所给点的最短路径. 注意的是先输入边,在输入的顶点数,不要弄反哦~~~ #incl ...

  8. POJ 2387 Til the Cows Come Home(dijkstra裸题)

    题目链接:http://poj.org/problem?id=2387 题目大意:给你t条边(无向图),n个顶点,让你求点1到点n的最短距离. 解题思路:裸的dijsktra,注意判重边. 代码: # ...

  9. POJ 2387 链式前向星下的SPFA

    (POJ)[http://poj.org/problem?id=2387] Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K ...

  10. Dijkstra单源最短路径,POJ(2387)

    题目链接:http://poj.org/problem?id=2387 Dijkstra算法: //求某一点(源点)到另一点的最短路,算法其实也和源点到所有点的时间复杂度一样,O(n^2); 图G(V ...

随机推荐

  1. LeetCode OJ 55. Jump Game

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  2. python 九九乘法表!小练习

    # 1*1 = 1 # 1*2 = 2 2*2 = 4 # 1*3 = 3 2*3 = 6 3*3 = 9 i = 1 j = 1 for j in range(1,10): for i in ran ...

  3. 十九、oracle pl/sql简介

    一.pl/sql 是什么pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展.pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语 ...

  4. nodejs【伪】入门教程

    声明: 本文适合白的不能再白的小白 不要被标题误导,本文不会讲nodejs基础,只是本人学习流程和资料的一个整合 如果想找一大堆教程自己看,没有电梯,自己拉到文章最下方吧   一.nodejs是什么 ...

  5. web开发——水到渠成

    1.tomcat中设置编码格式:      打开server.xml,添加下面红色框框里面的内容.  

  6. PAT 天梯赛 L2-007 家庭房产

    建图+DFS 题目链接:https://www.patest.cn/contests/gplt/L2-007 题解 在热身赛的时候没有做出来,用的并查集的思想,但是敲残了,最后也没整出来.赛后听到别人 ...

  7. Centos6.4 NFS的安装与配置

    NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用N ...

  8. form表单中的带有name的标签直接转JSON

    1. 将如下内容引入页面:比如说新建一个 a.js,然后在页面中引入a.js//将form表单序列化成json格式 $.fn.serializeObject = function () { var o ...

  9. hdu_2141_Can you find it?(二分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2141 题意:叫你找三个数,使得这三个数的值为X,如果找得到就输出YES否则输出NO,注意两个32位数相 ...

  10. Java 学习路线

    java 入门到精通  转自:http://forum.hibernate.org.cn作者:robbinJava Learning Path (一).工具篇 一. JDK (Java Develop ...