vijos 1942 [AH 2005] 小岛

描述

西伯利亚北部的寒地,坐落着由 N 个小岛组成的岛屿群,我们把这些小岛依次编号为 1 到 N 。

起初,岛屿之间没有任何的航线。后来随着交通的发展,逐渐出现了一些连通两座小岛的航线。
例如增加一条在 u 号小岛与 v 号小岛之间的航线,这条航线的用时为 e。 那么沿着这条航线,u 号小岛上的人可以前往 v 号小岛,同样的 v 号小岛上的人也可以前往 u 号小岛,其中沿着这一条航线花费的时间为 e。

同时,随着旅游业的发展,越来越多的人前来游玩。那么两个小岛之间的最短路径是多少便成为了饱受关注的话题。

格式

输入格式

输入共 M+1 行。

第一行有两个整数 N 和 M,分别表示小岛的数与总操作数。

接下来的 M 行,每行表示一个操作,格式如下:
0 s t:表示询问从 s 号小岛到 t 号小岛的最短用时(1<=s<=n, 1<=t<=n, s\neq t)。
1 u v e:表示新增了一条从 u 号小岛到 v 号小岛,用时为 e 的双向航线(1<=u<=n, 1<=v<=n, u ≠ v, 1<=e<=10^6)。

输出格式

输出针对每一次询问,单独输出一行。
对于每一组询问来说,如果不存在可行的道路,则输出 -1,否则输出最短用时。

裸上SPFA
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;struct na{int y,z,ne;na(){ne=0;}
};
int n,m,dis[101][101],c,x,y,z,p,l[101],r[101],num=0,k;
na b[10001];
char o;
queue <int> q;
bool bo[101];
const int INF=1e9;
inline int read(){p=0;o=getchar();while(o<'0'||o>'9') o=getchar();while(o>='0'&&o<='9') p=p*10+o-48,o=getchar();return p;
}
inline void in(int x,int y,int z){num++;if (l[x]==0) l[x]=num;else b[r[x]].ne=num;b[num].y=y;b[num].z=z;r[x]=num;
}
int main(){n=read();m=read();int i,j;for (i=1;i<=n;i++)for (j=1;j<=n;j++) dis[i][j]=INF;for (i=1;i<=n;i++) dis[i][i]=0;while(m--){c=read();x=read();y=read();if (c==0){if (dis[x][y]==INF) printf("-1\n");else printf("%d\n",dis[x][y]);}else{z=read();in(x,y,z);in(y,x,z);for (i=1;i<=n;i++){q.push(x);q.push(y);bo[x]=bo[y]=1;while(!q.empty()){k=q.front();q.pop();bo[k]=0;for (j=l[k];j;j=b[j].ne)if (dis[i][b[j].y]>dis[i][k]+b[j].z){dis[i][b[j].y]=dis[i][k]+b[j].z;if (!bo[b[j].y])q.push(b[j].y),bo[b[j].y]=1;}}}}}
}

 

转载于:https://www.cnblogs.com/Enceladus/p/5121088.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊城大学计算机应用基础函授,聊城大学试题计算机应用基础试题

姓名 年级专业层次 教学单位密封线 第1页 共3页聊城大学《计算机应用基础》函授试题一、判断题(共10题&#xff0c;每题2分&#xff0c;共20分)1、信息按状态划分可以划分为动态信息和静态信息。( √ )2、操作系统不具有通用性。( )3、在Windows XP环境中&#xff0c;整个显示…

(七)SpringBoot+SpringCloud —— 集成断路器

2019独角兽企业重金招聘Python工程师标准>>> 断路器简介 在一个项目中&#xff0c;系统可能被拆分成多个服务&#xff0c;例如用户、订单和库存等。 这里存在这服务调用服务的情况&#xff0c;例如&#xff0c;客户端调用订单服务&#xff0c;订单服务又调用库存服务…

计算机学业水平考试及格,信息技术学业水平考试表格部分试题(带答案)

第三章表格信息的加工与表达复习学案【学习目标】1.熟练使用excel加工表格信息&#xff0c;理解用图表来表现信息的特点与意义&#xff0c;2.能根据表格数据关系选择合适的图表类型表达意图。【考点】1.表格中常用的函数及其求值方法&#xff1b;2.根据数据选择合适的图表类型&…

云计算:容器技术变革云计算,SaaS带动CaaS市场

报告摘要&#xff1a; 1、容器技术增速惊人&#xff0c;市场认可度提高 虚拟化是云计算的重要基础&#xff0c;Docker定义了一套容器从构建到执行的标准化体系&#xff0c;改变了传统的虚拟化技术&#xff0c;深度影响了云计算领域。 随着谷歌、亚马逊、微软等云计算厂商纷纷加…

三年级神奇电子计算机教案,人教版小学三年级下册信息技术教案

人教版小学三年级下册信息技术教案 人教版小学信息技术教案第一课 神奇的信息世界教学目的&#xff1a;通过学习使学生更充分地了解信息技术在生活中的应用。教学内容&#xff1a;观看“神奇的信息世界”光碟教学准备&#xff1a;1、调试每台计算机 2、打开计算机并由教师机控制…

spark 安装配置

最佳参考链接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhuang.html Apache Spark1.1.0部署与开发环境搭建   Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构。与MapReduce不同&am…

python基础知识-列表,元组,字典

列表&#xff08;list&#xff09; 赋值方法&#xff1a; l [11,45,67,34,89,23] l list() 列表的方法&#xff1a; 1 #!/usr/bin/env python2 3 class list(object):4 """5 list() -> new empty list6 list(iterable) -> new list initial…

如何解决机器学习中的数据不平衡问题?

在机器学习任务中&#xff0c;我们经常会遇到这种困扰&#xff1a;数据不平衡问题。 数据不平衡问题主要存在于有监督机器学习任务中。当遇到不平衡数据时&#xff0c;以总体分类准确率为学习目标的传统分类算法会过多地关注多数类&#xff0c;从而使得少数类样本的分类性能下降…

四大技巧轻松搞定云容器

云容器技术&#xff0c;作为传统虚拟化管理程序的一种替代品&#xff0c;正称霸着云市场。容器是轻量级的&#xff0c;并提供增强的便携性&#xff0c;允许应用在平台之间迁移&#xff0c;而不需要开发者重做或重新架构应用。但是&#xff0c;尽管其好处让开发人员感到惊叹&…

Android 图文混排 通过webview实现并实现点击图片

在一个开源项目看到是用的webview 实现的 1. 这是在asset中的一个模板html <html> <head> <title>News Detail</title> <meta name"viewport" content"widthdevice-width, minimum-scale0.5, initial-scale1.2, maximum-scale2.0…

计算机硬件选型报价,组装电脑硬件该怎么选择?这几个硬件要舍得花钱,千万别买错了!...

原标题&#xff1a;组装电脑硬件该怎么选择&#xff1f;这几个硬件要舍得花钱&#xff0c;千万别买错了&#xff01;组装电脑是多硬件组合的产物&#xff0c;每一个硬件对于电脑的性能都是有影响的&#xff0c;影响的大小与电脑的硬件有直接关系&#xff0c;有些硬件就要舍得花…

高级会计师计算机考试中级,会计师需要计算机等级考试吗

尘伴考证达人06-19TA获得超过671个赞[color#000][font宋体][size3][alignleft]广东省高级会计师评审职称外语&#xff0c;执行《关于调整完善我省职称外语政策的通知》(粤人发〔2018〕120号)[/align][alignleft]三、报考职称外语考试的等级要求[b][size3](一)申报高教、科研、卫…

一 手游开发工具cocos2d-x editor初识

可学习的demo&#xff1a; 7个实战项目 flappybird&#xff08;飞扬小鸟&#xff09;、popstar&#xff08;消灭星星&#xff09;、fruitninja&#xff08;水果忍者&#xff09;、2048&#xff08;数度消除&#xff09;。 moonwarriors&#xff08;月亮战神&#xff09;、frui…

Provisioning Services 7.6 入门到精通系列之七:创建虚拟磁盘

在上一章节完成了主目标设备的准备&#xff0c;今天将揭晓如何通过映像向导创建虚拟磁盘。1.1 点击开始菜单”映像向导”1.2 在映像向导点击”下一步“1.3 输入PVS服务器信息&#xff0c;下一步1.4 点击”新建虚拟磁盘”1.5 输入新虚拟磁盘的相关信息&#xff0c;下一步1.6 配置…

全国职业院校技能大赛软件测试题目,我校喜获2018全国职业院校技能大赛“软件测试”赛项一等奖...

九江职院新闻网讯(信息工程学院)5月31日&#xff0c;从2018全国职业院校技能大赛传来喜讯&#xff0c;由我校信息工程学院教师艾迪、朱虎平指导&#xff0c;学生郭星宏、赖闽、吴宗霖组成的竞赛团队&#xff0c;代表江西省在高职组“软件测试”赛项中荣获团体一等奖的佳绩。为积…

两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];...

转自&#xff1a;http://blog.csdn.net/shandianling/article/details/8785269 问题描述&#xff1a;两个数组a[N]&#xff0c;b[N]&#xff0c;其中A[N]的各个元素值已知&#xff0c;现给b[i]赋值&#xff0c;b[i] a[0]*a[1]*a[2]…*a[N-1]/a[i]&#xff1b; 要求&#xff1a…

利用VOIP电话通信服务,他骗得18亿美元

VoIP电话服务公司TelexFree的CEO詹姆斯梅里尔承认他的公司是一个不折不扣的&#xff0c;拥有18亿美元金字塔式的旁氏骗局公司。 没想到VOIP技术也能成为诈骗犯罪的“工具” 本周一&#xff0c;在美国马萨诸塞州的一个地方法院&#xff0c;詹姆斯梅里尔被认定有罪。并具有九项罪…

三相滤波器怎么接线_单相电机和三相电机怎么接线?为什么三相电机有3或6个接线柱?...

于电机接线柱的链接方法&#xff0c;下面整理了从单相和三相的接法及三个接线柱和六个接线柱的区别等知识&#xff0c;跟各位电工朋友分享&#xff0c;希望在实际操作中能帮到各位。单相电机一般是指用单相交流电源(AC220V)供电的小功率单相异步电动机。这种电机通常在定子上有…

Android源码编译全过程记录(基于最新安卓5.1.0)【转】

本文转载自&#xff1a;http://blog.csdn.net/drg1612/article/details/44802533 我的编译条件&#xff1a; 1 Ubuntu Kylin 14.04 长期支持版 下载地址 &#xff1a; http://www.ubuntu-china.cn/download 2 我的电脑是联想G470 i3处理器 内存4G&#xff0c;120g固体硬盘&…

第三方登录接入-qq,weibo-java

开发之前 需求&#xff1a;网站接入qq,sina微博登录&#xff0c;本文最后付效果图&#xff1a; 说明&#xff1a;大部分网站本身是需要用户概念的&#xff0c;很多操作依附于用户&#xff0c;而qq或微博作为一种登录方式指向用户而已&#xff0c;我参考了一下其他网站的做法&am…