51Nod 1649 齐头并进
#include <iostream>
#include <algorithm>
#include <cstring>
//两遍迪杰斯特拉
#define INF 0xfffffff
using namespace std;
const int maxn = + ;
int rail[maxn][maxn];
int dis[maxn];
int vis[maxn]; void dij(int n, int u){
int i, j, p, Min;
memset(vis, , sizeof(vis));
for (int i = ; i <= n; i++)
dis[i] = rail[u][i];
vis[u] = ;
dis[u] = ; for (i = ; i < n; i++){
Min = INF;
for (j = ; j <= n; j++){
if (!vis[j] && dis[j] < Min){
p = j;
Min = dis[j];
}
}
if (Min == INF) return;
vis[p] = ;
for (j = ; j <= n; j++){
if (!vis[j] && dis[p] + rail[p][j] < dis[j]){
dis[j] = dis[p] + rail[p][j];
}
}
}
} int main(){
ios::sync_with_stdio(false);
fill(rail[], rail[] + maxn*maxn, INF);
int n, m;
cin >> n >> m;
if (m == ){
//没有铁路
cout << "-1" << endl;
return ;
}
for (int i = ; i < m; i++){
int x, y;
cin >> x >> y;
rail[x][y] = ;
rail[y][x] = ;
}
dij(n, );
int ans1 = dis[n];
if (ans1 == INF || m == (n*(n - ) / )){
//铁路没有答案,或者没有公路
cout << "-1" << endl;
return ;
} for (int i = ; i <= n; i++){
for (int j = + i; j <= n; j++){
if (rail[i][j] == ){
rail[i][j] = INF;
rail[j][i] = INF;
}
else{
rail[i][j] = ;
rail[j][i] = ;
}
}
}
dij(n, );
int ans2 = dis[n];
int ans = ans1 > ans2 ? ans1 : ans2;
cout << ans << endl; system("pause");
return ;
}
51Nod 1649 齐头并进的更多相关文章
- 51nod 1649.齐头并进-最短路(Dijkstra)
1649 齐头并进 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过 ...
- 51nod 1649 齐头并进 (djikstra求最短路径,只用跑一次)
题目: 这道题有一个坑点:两种交通工具同时出发,中途不能停留在同一个小镇. 其实想通了就很简单,因为要么火车一步到达,要么汽车一步到达.不可能停留在同一个地方. 可是我还WA了好几次,蠢哭.想用BFS ...
- 51nod1649- 齐头并进-最短路
1649 齐头并进 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过 ...
- 【51Nod 1244】莫比乌斯函数之和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...
- 51Nod 1268 和为K的组合
51Nod 1268 和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...
- 51Nod 1428 活动安排问题
51Nod 1428 活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...
- 51Nod 1278 相离的圆
51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...
- 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...
- 【51Nod 1622】【算法马拉松 19C】集合对
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio&g ...
随机推荐
- 这个捕鱼游戏制作的真心不错,原创音乐,AV动作,让人流连忘返啊呵呵
女生看完这篇文章后果断地命令男朋友打开电脑和手机 2014-10-10 茶娱饭后 本人纯屌丝宅男一名.专注游戏十年有余,玩过无数大大小小的游戏,对捕鱼游戏情有独钟.我不想说在捕鱼游戏方面有多专业 ...
- 一篇很好的讲解SIFT算法的文章
http://blog.csdn.net/zddblog/article/details/7521424
- html使用代码大全
<DIV style="FONT-SIZE: 9pt">1)贴图:<img src="图片地址">1)首行缩进2格:<p styl ...
- LINQ体验(18)——LINQ to SQL语句之视图和继承支持
视图 我们使用视图和使用数据表类似,仅仅需将视图从"server资源管理器/数据库资源管理器"拖动到O/R 设计器上,自己主动能够创建基于这些视图的实体类.我们能够同操作数据表一样 ...
- 常用的sql命令
1 mysql创建数据库 create database [database name]; 2 创建表 create table [table name]([first column name] [f ...
- elastica安装
https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html
- redis07-----Redis持久化配置
Redis持久化配置 持久化: 即把数据存储于断电后不会丢失的设备中,通常是硬盘. 常见的持久化方式: 主从:通过从服务器保存和持久化,如mongoDB的replication sets配置. 淘宝是 ...
- AndroidStudio——Android SDK
前言 安卓的SDK包,跨过长城下载好的,分享出来一下~ Android Studio版本 | 3.4.1 下载地址 微云下载地址 | 链接:https://share.weiyun.com/5rm6l ...
- oracle自动统计信息
在11g中,默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时), select a.window_name, a.repeat_interval,a ...
- Unable to instantiate receiver XXXXXX
运行一个工程的时候时logcat中出现了“Unable to instantiate receiver XX..”. 检查后发现,由于是东拼西凑的代码,所以在Manifest文件里注册了Receive ...