codevs 1269 匈牙利游戏
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 匈牙利游戏相关推荐
- CodeVs 1148 传球游戏
CodeVs 1148 传球游戏 解题报告 by MPS ------------------ ...
- codevs地鼠游戏(贪心)
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能 ...
- codevs 1085 数字游戏 dp或者暴搜
1085 数字游戏 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁 ...
- codevs——2853 方格游戏(棋盘DP)
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 菜菜看到了一个游戏,叫做方格游戏~ 游戏规则是这样的: 在一个n*n的格 ...
- 推荐一些类似《纪念碑谷》这样接近艺术的游戏
2019独角兽企业重金招聘Python工程师标准>>> 一楼,纪念碑谷. 2楼,<植物精灵>有着色彩华丽的治愈系风格,同时该作也被称作环保题材游戏,描述有害的生物威胁森林 ...
- Conclusion
/* 高中最后一个暑假 挺有意义的 考了一暑假的试 最后总结一下吧 一天一天来吧7.30 这一天的题有点变态啊 不过难题有难题的做法 T1斗地主 考试的时候打了0分 0分..... 原因好像是读入的格 ...
- 不同浏览器 ajax,完整的 AJAX 写法(支持多浏览器)
代码如下: var xmlhttp; function Submit() { //1.创建 XMLHttpRequest 对象 if (window.XMLHttpRequest) { //IE7,I ...
- 【POJ】3255 Roadblocks(次短路+spfa)
http://poj.org/problem?id=3255 同匈牙利游戏. 但是我发现了一个致命bug. 就是在匈牙利那篇,应该dis2单独if,而不是else if,因为dis2和dis1相对独立 ...
- 动态规划--from zpz
版权声明:copy from zpz,我可能要修改 https://blog.csdn.net/qq_40828060/article/details/83064425 文章目录 前言 记忆化搜索 动 ...
最新文章
- Android开发之Buidler模式初探结合AlertDialog.Builder讲解
- [转载]《STL源码剖析》阅读笔记之 迭代器及traits编程技法
- DEKR 解构式人体关键点回归(三):损失函数
- PHP错误:Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in
- 转:python的内置对象
- 加快android编译速度
- 习题3.8 符号配对 (20分)
- JAVA输入输出IO流→File、RandomAccessFilse、字节流InputSream与OutputStream、字符流Reader与Writer、对象序列化Serializable
- 电子技术_常见贴片电阻封装功率和标称值
- 研发大局观(15.8.25 )
- 【BUCT数据结构类库】1.2--链表的基本操作
- x82y 阿里滑块 解决方法!
- Keras 主要的层函数
- wcdma系统随机接入过程的流程图_WCDMA系统随机接入过程浅析
- Node-RED中使用JSON数据建立web网站
- 翻转棋c语言算法,有没有人懂黑白棋(翻转棋)的核心算法
- 历史辩证唯物主义下的金融业发展的思考*
- 剪子-包袱-锤(模拟题,机器人根据我出的情况进行统计,决定他出什么,我再根据他出什么决定我出什么,7种情况)
- 什么是FAQ以及怎么编写
- C语言求最小公倍数的三种方法