C

Time Limit: 7000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描写叙述

给出一个带权无向图。包括n个点,m条边。求出s,e的最短路。保证最短路存在。

输入

 多组输入。

对于每组数据。
第一行输入n,m(1<= n && n<=5*10^5,1 <= m && m <= 2*10^6)。

接下来m行。每行三个整数。u,v,w,表示u。v之间有一条权值为w(w >= 0)的边。

最后输入s,e。

输出

 对于每组数据输出一个整数代表答案。

演示样例输入

3 1
1 2 3
1 2

演示样例输出

3
这道题绝了。。

点 边都太多,要么spfa过。要么bfs+优先队列爆搜(好像更快一些) 其它的方法都过不去,而其对内存卡的特别紧,vector过不去,照着标程敲的bfs挂了。。到如今不知道错在哪,怒换spfa,然后就过了
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <list>
using namespace std;
const int maxn=500010;
const int INF=1<<29;
struct node{
int p,w,next;
};
node eg[4000010];
bool vis[maxn];
int n,e,head[500010],dis[500010];
void adj_clear()
{
memset(head,-1,sizeof(head));
e=0;
}
void addnode(int u,int v,int c)
{
eg[e].p=v;
eg[e].w=c;
eg[e].next=head[u];
head[u]=e++;
}
void spfa(int src)
{
queue <int> Q;int i;
for(i=0;i<=n;i++){dis[i]=INF;vis[i]=0;}
dis[src]=0;
Q.push(src);
while(!Q.empty()){
int u=Q.front();Q.pop();
vis[u]=0;
for(i=head[u];i!=-1;i=eg[i].next)
{
int v=eg[i].p;
int w=eg[i].w;
if(dis[v]>dis[u]+w)
{
dis[v]=dis[u]+w;
if(!vis[v])
{
vis[v]=1;
Q.push(v);
}
}
}
}
}
int main()
{
int u,v,m,w;
while(scanf("%d%d",&n,&m)!=EOF){
adj_clear();
while(m--){ scanf("%d%d%d",&u,&v,&w);
addnode(u,v,w);
addnode(v,u,w);
}
int s,en;
scanf("%d%d",&s,&en);
spfa(s);
printf("%d\n",dis[en]);
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

SDUT 2894-C(最短spfa)的更多相关文章

  1. SDUT 最短路径(二维SPFA)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2622 #include<stdio.h& ...

  2. sdut AOE网上的关键路径(spfa+前向星)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2498&cid=1304 题目描述 一个无环的有向图称为无环图(Directed Acyc ...

  3. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  4. hdu3986 spfa + 枚举最短路上的边

    题意: 删除一条边后,求最短路中最长的那个(敌人搞破坏). 思路: 如果你是敌人你肯定删除最短路上的边,删除别的边最短路的值是不会变的,所以直接枚举最短路上的边去删除,取得最大的就行了... #inc ...

  5. 2013成都邀请赛J称号||HDU4725 The Shortest Path in Nya Graph(spfa+slf最短的优化)

    职务地址:HDU 4725 这题卡了好长时间了,建图倒是会建,可是不会最短路的算法优化,本以为都须要堆去优化的,打算学了堆之后再来优化.可是昨晚CF的一道题..(那题也是不优化过不了..)然后我就知道 ...

  6. SDUT 2498-AOE网上的关键路径(spfa+字典序路径)

    AOE网上的关键路径 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 一个无环的有向图称为无环图(Directed Acycl ...

  7. POJ 3013 Big Christmas Tree(最短Dijkstra+优先级队列优化,SPFA)

    POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA) ACM 题目地址:POJ 3013 题意:  圣诞树是由n个节点和e个边构成的,点编号1-n. ...

  8. 图练习-BFS-从起点到目标点的最短步数(sdut 2830)邻接边表

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2830 题目描述 在古老的魔兽传说中,有两个军团 ...

  9. SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)

    数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...

随机推荐

  1. dell服务器从硬盘导入阵列信息

    前几天去南京客户那里更新新的业务系统,客户要求将服务器上的旧的硬盘拆下来,换上新的硬盘,重新做raid,客户自己要插入旧的硬盘读取旧数据,昨天做了几个实验,两台Dell R710服务器各4块硬盘,一台 ...

  2. Linux scp文件复制

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.  1.scp命令的用处:  scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输 ...

  3. Windows Server时间服务器配置方法

    1 时间服务器经常会碰到客户端机器需要和服务器在时间上保持同步,否则会出现各种问题,特别是有时间相关的触发功能的时候. 为解决各设备间时间统一的问题,我们可在网络中设置一台服务器使其作为基准时间,其它 ...

  4. sql大小转换函数

    将字段值转换成大写 UPDATE t SET [name]=UPPER([name]) 将字段值转换成小写 UPDATE t SET [name]=LOWER([name])

  5. 【JAVA学习】“-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java执行參数(转)

    年轻代 年老代概念 http://jefferent.iteye.com/blog/1123677 JVM的堆的内存, 是通过以下面两个參数控制的  -Xms 最小堆的大小, 也就是当你的虚拟机启动后 ...

  6. Multitasking Apps may only use background services for their intended purposes

    2.16 Details Your app declares support for audio in the UIBackgroundModes key in your Info.plist, bu ...

  7. C++ Primer笔记10_运算符重载_赋值运算符_进入/输出操作符

    1.颂值运营商 首先来福值运算符引入后面要说的运算符重载.上一节说了构造函数.拷贝构造函数:一个类要想进行更好的控制.须要定义自己的构造函数.拷贝构造函数.析构函数.当然,还有赋值运算符.常说的三大函 ...

  8. WEB-INF文件夹的位置和作用

    WEB-INF简介 TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问. WEB-INF文件 ...

  9. HDU4870:Rating(DP)

    Problem Description A little girl loves programming competition very much. Recently, she has found a ...

  10. 使用C#和.NET 4编写的并行应用程序“多核并发编程的规则”

    “多核并发编程的规则” 规则的描述如下 1.      并发编程的思想—这条规则就是要谨记并发编程思想进行设计,就像前边章节所提交的. 2.      面向抽象编程-你可以利用.NET4中的TPL提供 ...