codevs 1269 匈牙利游戏

题目大意:求次短路

数据范围:2≤n≤20000,1≤m≤100000,1≤L≤10000

思路:spfa的时候在更新最短路的时候顺便更新一下次短路就好了。

题解:

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
const int maxn=1000000;
int n,m;
struct cc{int from,to,cost;
}es[maxn];
int first[maxn],next[maxn];
bool vis[maxn];
int tot=0;
void build(int ff,int tt,int pp)
{es[++tot]=(cc){ff,tt,pp};next[tot]=first[ff];first[ff]=tot;
}
int dis1[maxn],dis2[maxn];
queue<int>q;
void spfa(int s)
{dis1[s]=0;vis[s]=1;q.push(s);while(!q.empty()){int u=q.front(); q.pop();vis[u]=0;for(int i=first[u];i;i=next[i]){int v=es[i].to;if(dis1[v]>dis1[u]+es[i].cost)//能更新最短路 {dis2[v]=dis1[v];dis1[v]=dis1[u]+es[i].cost;if(!vis[v])              {q.push(v);vis[v]=1;}}else if(dis1[v]<dis1[u]+es[i].cost)//不能更新最短路但能更新次短路 {if(dis2[v]>dis1[u]+es[i].cost){dis2[v]=dis1[u]+es[i].cost;if(!vis[v]){q.push(v);vis[v]=1;}}}else if(dis2[v]>dis2[u]+es[i].cost)//通过次短路更新次短路 {dis2[v]=dis2[u]+es[i].cost;if(!vis[v]){q.push(v);vis[v]=1;}}                   }}
}
int main()
{memset(dis1,63,sizeof(dis1));memset(dis2,63,sizeof(dis2));scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);build(x,y,z);}spfa(1);if(dis2[n]>1000000000){printf("-1");}else{printf("%d",dis2[n]);}return 0;
}

转载于:https://www.cnblogs.com/-feather/p/7779940.html

codevs 1269 匈牙利游戏相关推荐

  1. CodeVs 1148 传球游戏

    CodeVs 1148 传球游戏 解题报告                                                      by MPS ------------------ ...

  2. codevs地鼠游戏(贪心)

    1052 地鼠游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能 ...

  3. codevs 1085 数字游戏 dp或者暴搜

    1085 数字游戏 2003年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁 ...

  4. codevs——2853 方格游戏(棋盘DP)

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 菜菜看到了一个游戏,叫做方格游戏~ 游戏规则是这样的: 在一个n*n的格 ...

  5. 推荐一些类似《纪念碑谷》这样接近艺术的游戏

    2019独角兽企业重金招聘Python工程师标准>>> 一楼,纪念碑谷. 2楼,<植物精灵>有着色彩华丽的治愈系风格,同时该作也被称作环保题材游戏,描述有害的生物威胁森林 ...

  6. Conclusion

    /* 高中最后一个暑假 挺有意义的 考了一暑假的试 最后总结一下吧 一天一天来吧7.30 这一天的题有点变态啊 不过难题有难题的做法 T1斗地主 考试的时候打了0分 0分..... 原因好像是读入的格 ...

  7. 不同浏览器 ajax,完整的 AJAX 写法(支持多浏览器)

    代码如下: var xmlhttp; function Submit() { //1.创建 XMLHttpRequest 对象 if (window.XMLHttpRequest) { //IE7,I ...

  8. 【POJ】3255 Roadblocks(次短路+spfa)

    http://poj.org/problem?id=3255 同匈牙利游戏. 但是我发现了一个致命bug. 就是在匈牙利那篇,应该dis2单独if,而不是else if,因为dis2和dis1相对独立 ...

  9. 动态规划--from zpz

    版权声明:copy from zpz,我可能要修改 https://blog.csdn.net/qq_40828060/article/details/83064425 文章目录 前言 记忆化搜索 动 ...

最新文章

  1. Android开发之Buidler模式初探结合AlertDialog.Builder讲解
  2. [转载]《STL源码剖析》阅读笔记之 迭代器及traits编程技法
  3. DEKR 解构式人体关键点回归(三):损失函数
  4. PHP错误:Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in
  5. 转:python的内置对象
  6. 加快android编译速度
  7. 习题3.8 符号配对 (20分)
  8. JAVA输入输出IO流→File、RandomAccessFilse、字节流InputSream与OutputStream、字符流Reader与Writer、对象序列化Serializable
  9. 电子技术_常见贴片电阻封装功率和标称值
  10. 研发大局观(15.8.25 )
  11. 【BUCT数据结构类库】1.2--链表的基本操作
  12. x82y 阿里滑块 解决方法!
  13. Keras 主要的层函数
  14. wcdma系统随机接入过程的流程图_WCDMA系统随机接入过程浅析
  15. Node-RED中使用JSON数据建立web网站
  16. 翻转棋c语言算法,有没有人懂黑白棋(翻转棋)的核心算法
  17. 历史辩证唯物主义下的金融业发展的思考*
  18. 剪子-包袱-锤(模拟题,机器人根据我出的情况进行统计,决定他出什么,我再根据他出什么决定我出什么,7种情况)
  19. 什么是FAQ以及怎么编写
  20. C语言求最小公倍数的三种方法

热门文章

  1. 计算机网络复习-应用层
  2. 一步步用zTree(1)
  3. 从JDK9的Flow接口说起
  4. 日常生活 -- 嵌入式面试
  5. S5PV210开发 -- 通过 DNW、fastboot 烧写
  6. Java 多重catch语句的使用
  7. 《Android插件化技术——原理篇》
  8. 如何避免无意义的区块链项目
  9. w3c的html4.0规范,W3C标准以及规范
  10. 有线同步--ASP007