POJ 2387
最短路模板 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的更多相关文章
- 链式前向星版DIjistra POJ 2387
链式前向星 在做图论题的时候,偶然碰到了一个数据量很大的题目,用vector的邻接表直接超时,上网查了一下发现这道题数据很大,vector可定会超的,不会指针链表的我找到了链式前向星这个好东西,接下来 ...
- 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 ...
- 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 ...
- POJ.2387 Til the Cows Come Home (SPFA)
POJ.2387 Til the Cows Come Home (SPFA) 题意分析 首先给出T和N,T代表边的数量,N代表图中点的数量 图中边是双向边,并不清楚是否有重边,我按有重边写的. 直接跑 ...
- POJ 2387 Til the Cows Come Home
题目链接:http://poj.org/problem?id=2387 Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K ...
- 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 ...
- poj 2387 Til the Cows Come Home(dijkstra算法)
题目链接:http://poj.org/problem?id=2387 题目大意:起点一定是1,终点给出,然后求出1到所给点的最短路径. 注意的是先输入边,在输入的顶点数,不要弄反哦~~~ #incl ...
- POJ 2387 Til the Cows Come Home(dijkstra裸题)
题目链接:http://poj.org/problem?id=2387 题目大意:给你t条边(无向图),n个顶点,让你求点1到点n的最短距离. 解题思路:裸的dijsktra,注意判重边. 代码: # ...
- POJ 2387 链式前向星下的SPFA
(POJ)[http://poj.org/problem?id=2387] Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K ...
- Dijkstra单源最短路径,POJ(2387)
题目链接:http://poj.org/problem?id=2387 Dijkstra算法: //求某一点(源点)到另一点的最短路,算法其实也和源点到所有点的时间复杂度一样,O(n^2); 图G(V ...
随机推荐
- shell脚本学习(三)
1.在grep中, ^标记着单词的开始, $ 标记着单词的结束. 查看一个单词是否在linux自带的词典中,脚本如下: #bin/sh #文件名:checkword.sh word=$1 grep & ...
- 理解 Storm 拓扑的并行度(parallelism)概念
组成:一个运行中的拓扑是由什么构成的:工作进程(worker processes),执行器(executors)和任务(tasks)! 在一个 Storm 集群中,Storm 主要通过以下三个部件来运 ...
- LeetCode OJ 54. Spiral Matrix
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- 洛谷-哥德巴赫猜想(升级版)-BOSS战-入门综合练习1
题目背景 Background 1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和.质数是指除了1和本身之外没有其他约数的数,如2和 ...
- Python从json中提取数据
#json string:s = json.loads('{"name":"test", "type":{"name": ...
- Java判断PC端还是移动端
package com.*.*.*; import java.io.IOException;import java.util.regex.Matcher;import java.util.regex. ...
- k近邻模型
k近邻模型主要包含三个基本要素:距离度量.k值的选择.分类决策规则 模型: k近邻法中,当训练集.距离度量.k值及分类决策规则确定后,对于一个新的输入实例,它所属的类唯一确定,这相当于根据上述要素将特 ...
- 错误提示 Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for architecture 'i386'
转自http://blog.csdn.net/cyuyanenen/article/details/51444974 警告提示:Invalid C/C++ compiler in target Cor ...
- JVM垃圾收集算法(标记-清除、复制、标记-整理)
[JVM垃圾收集算法] 1)标记-清除算法: 标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?) 清除阶段:清除所有未被标记的对象 2)复制算法: 将原有的内存空间 ...
- android 联网
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="htt ...