题意:给出n个点,m条双向边,求严格次短路。

/*
先spfa预处理出起点到每个点的和每个点到终点的最短距离,然后枚举每条边(这条边必须走),计算此时的最短路径,得出严格次短路。
正确性:因为对于一条最短路,它不可能把所有的边走完(应该很显然),那么我们枚举所有边,就一定会枚举到它没走的边,此时的最短路就可能是次短路。
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#define N 5010
#define M 100010
#define INF 500000000
using namespace std;
int head[N],dis1[N],dis2[N],vis[N],n,m;
struct node{
int u,v,pre,t;
};node e[M*];
void add(int i,int x,int y,int z){
e[i].u=x;
e[i].v=y;
e[i].t=z;
e[i].pre=head[x];
head[x]=i;
}
void spfa1(int s){
memset(dis1,/,sizeof(dis1));
memset(vis,,sizeof(vis));
queue<int> q;
dis1[s]=;q.push(s);vis[s]=;
while(!q.empty()){
int x=q.front();q.pop();vis[x]=;
for(int i=head[x];i;i=e[i].pre){
if(dis1[e[i].v]>dis1[x]+e[i].t){
dis1[e[i].v]=dis1[x]+e[i].t;
if(!vis[e[i].v]){
vis[e[i].v]=;
q.push(e[i].v);
}
}
}
}
}
void spfa2(int s){
memset(dis2,/,sizeof(dis1));
memset(vis,,sizeof(vis));
queue<int> q;
dis2[s]=;q.push(s);vis[s]=;
while(!q.empty()){
int x=q.front();q.pop();vis[x]=;
for(int i=head[x];i;i=e[i].pre){
if(dis2[e[i].v]>dis2[x]+e[i].t){
dis2[e[i].v]=dis2[x]+e[i].t;
if(!vis[e[i].v]){
vis[e[i].v]=;
q.push(e[i].v);
}
}
}
}
}
void work(){
for(int i=;i<=m;i++){
int x,y,z;scanf("%d%d%d",&x,&y,&z);
add(i*-,x,y,z);add(i*,y,x,z);
}
spfa1();
spfa2(n);
int shortest=dis1[n],ci=INF;
for(int i=;i<=*m;i++){
int len=dis1[e[i].u]+dis2[e[i].v]+e[i].t;
if(len>shortest&&len<ci){
ci=len;
}
}
printf("%d\n",ci);
}
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
memset(head,,sizeof(head));
memset(e,,sizeof(e));
work();
}
return ;
}

Roadblocks(poj 3255)的更多相关文章

  1. 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)

    Charm Bracelet    POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ...

  2. Scout YYF I(POJ 3744)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5565   Accepted: 1553 Descr ...

  3. 广大暑假训练1(poj 2488) A Knight's Journey 解题报告

    题目链接:http://vjudge.net/contest/view.action?cid=51369#problem/A   (A - Children of the Candy Corn) ht ...

  4. Games:取石子游戏(POJ 1067)

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37662   Accepted: 12594 Descripti ...

  5. BFS 或 同余模定理(poj 1426)

    题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple  非零倍数  啊. 英语弱到爆炸,理解不了题意... ...

  6. 并查集+关系的传递(poj 1182)

    题目:食物链 题意:给定一些关系.判断关系的正确性,后给出的关系服从之前的关系: 思路:难点不在并查集,在于关系的判断,尤其是子节点与根节点的关系的判断: 这个关系看似没给出,但是给出子节点与父节点的 ...

  7. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  8. Collecting Bugs(POJ 2096)

    Collecting Bugs Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 3064   Accepted: 1505 ...

  9. Power string(poj 2406)

    题目大意,给出一个字符串s,求最大的k,使得s能表示成a^k的形式,如 abab 可以表示成(ab)^2: 方法:首先 先求kmp算法求出next数组:如果 len mod (len-next[len ...

随机推荐

  1. 【PHP面向对象(OOP)编程入门教程】10.__set(),__get(),__isset(),__unset()四个方法的应用

    一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是, 对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数”__get()”和”__set()”来获取和赋值其属性 ...

  2. 中国天气预报数据API收集

      {"weatherinfo":{"city":"北京","cityid":"101010100" ...

  3. Android开发学习笔记--计时器的应用实例

    为了了解安卓计时器的用法,写了一个秒表的应用,正是这个秒表,让我对Android应用的速度大跌眼镜,我设置了一个计时器,10ms更新一次显示的时间,然后更标准的时间一比较发现,跑10s就有一秒的时间误 ...

  4. BZOJ2243——[SDOI2011]染色

    1.题目大意:给个树,然后树上每个点都有颜色,然后会有路径的修改,有个询问,询问一条路径上的颜色分成了几段 2.分析:首先这个修改是树剖可以做的,对吧,但是这个分成了几段怎么搞呢,我们的树剖的不是要建 ...

  5. Web服务精讲–搭个 Web 服务器(二)

    导读 曾几何时,你所选择的 Python Web 框架会限制你所可选择的 Web 服务器,反之亦然.如果某个框架及服务器设计用来协同工作的,那么一切正常. 在第一部分中,我提出了一个问题:“如何在你刚 ...

  6. Android版2048

    虽然说2048是好久前比较火的小游戏,但直到最近才有机会去研究下2048实现的源码,这里就简单写一下我(bie)的(ren)思路: 首先2048需要有十六个卡片,这个卡片可以用FrameLayout的 ...

  7. Caffe学习系列(13):对训练好的模型进行fine-tune

    使用http://www.cnblogs.com/573177885qq/p/5804863.html中的图片进行训练和测试. 整个流程差不多,fine-tune命令: ./build/tools/c ...

  8. Qt5 程序启动画面图片效果

    2333每次打开photoshop开启画面是在酷炫,其实也不难啦. 新建项目名称SplashScreen,基类默认,取消创建界面复选框,完成. 代码如下,图片资源文件自己添加(已上传还未实现动态效果学 ...

  9. django foreign key 自动加_id问题

    解决:http://stackoverflow.com/questions/8223519/preventing-django-from-appending-id-to-a-foreign-key-f ...

  10. redis配置文件redis.conf参数说明

    redis配置文件redis.conf参数说明 (2013-01-09 21:20:40)转载▼ 标签: redis配置 redis.conf 配置说明 杂谈 分类: nosql # By defau ...