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;整个显示…

Struts2中 Path (getContextPath与basePath)

struts2中的路径问题是根据action的路径而不是jsp路径来确定&#xff0c;所以尽量不要使用相对路径。 虽然可以用redirect方式解决&#xff0c;但redirect方式并非必要。解决办法非常简单&#xff0c;统一使用绝对路径。&#xff08;在jsp中用request.getContextpath方式来拿到…

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

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

Java反射机制的使用方法

Java的反射机制同意你在程序执行的过程中获取类定义的细节。有时候在程序执行的时候才得知要调用哪个方法&#xff0c;这时候反射机制就派上用场了。获取类 类的获取方法有下面几种&#xff1a;forName()。通过Class.forName()获取与字符串向相应的类。比方\lstinline{Class.fo…

银行计算机设备日常检查表,[计算机]201154安全检查表.doc

[计算机]201154安全检查表土建基础框架施工检查表编号&#xff1a;2011-03-01-11工程名称铸造车间检查时间2011 年 月 日检查部位基础施工检 查 人检 查结 论百分制折合分数&#xff1a;需要整改共 条。受检单位河南周口受检责任人检 查 内 容检查项目检查内容和安全文明施工要…

我为什么要写FansUnion个人官网-BriefCMS-电子商务malling等系统

不少朋友一直关注我最近几个月&#xff0c;已经做的和正在做的项目&#xff0c;比如个人官网、BriefCMS、电子上午malling等系统。但是呢&#xff0c;部分朋友比较好奇&#xff0c;为啥要去写。他们比较疑惑的是&#xff0c;市面上已经有很多类似的系统了&#xff0c;甚至有部分…

Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传

背景起&#xff0c;有奏乐&#xff1a; 有伟人曰&#xff1a;学习技能的最好途径莫过于理论与实践相结合。 初学Node这货时&#xff0c;每每读教程必会Fall asleep。 当真要开发系统时&#xff0c;顿觉精神百倍&#xff0c;即便踩坑无数也不失斗志。 因为同团队的小伙伴们都在辛…

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

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

Ok6410挂载NFS

虚拟机&#xff1a; apt-get install portmap apt-get install nfs-kernel-server mkdir /nfs/root/mNFS chmod 777 /nfs chmod 777 /nfs/root vi /etc/exports 添加&#xff1a;/nfs/root *(rw,sync,no_root_squash) 开发板&#xff1a; mount -t nfs 192.168.0.12…

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

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

Jan 12 - Delete Node in a Linked List; Data Structure; Linked List; Pointer;

代码&#xff1a; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ public class Solution {public void deleteNode(ListNode node) {if(node null) return;while(node.next ! …

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

人教版小学三年级下册信息技术教案 人教版小学信息技术教案第一课 神奇的信息世界教学目的&#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…

《大数据原理:复杂信息的准备、共享和分析》一一2.5 在标识符中嵌入信息:不推荐...

2.5 在标识符中嵌入信息&#xff1a;不推荐大多数标识符不是纯粹的随机数&#xff0c;它们通常含有一些可由熟悉标识系统的人解释的嵌入信息。例如&#xff0c;标识符中可以嵌入姓的前三个字母&#xff0c;同样&#xff0c;标识符中也可以嵌入出生年份的最后两位数字。标识符中…

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…

车站计算机联锁系统的仿真设计,车站计算机联锁仿真设计.doc

车站计算机联锁仿真设计2012 届 交通运输 学院专 业学 号 2008学生姓名指导教师完成日期 2012年 月日计算机联锁是保证车站内列车和调车作业安全&#xff0c;提高车站通过能力的一种信号设备。设计以沙盘模型为根据&#xff0c;练习制作联锁信号图表&#xff0c;使用Visual Bas…

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

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

ubuntu每次登陆都用root账号登陆

sudo -s 进入 root 用户权限模式 vi /etc/lightdm/lightdm.conf [SeatDefaults] greeter-sessionunity-greeter user-sessionUbuntu greeter-show-manual-logintrue allow-guestfasle 重启后再登陆就会 直接用root登陆了 版权声明&#xff1a;本文为博主原创文章&#xff0c;未…

js-BOM

私有变量&#xff1a; 1、在一个实例上调用setName&#xff08;&#xff09;会影响所有的实例 BOM&#xff1a; 1、全局变量不能通过delete操作符删除&#xff0c;而直接在window对象上定义的属性可以 2、尝试访问为声明的变量会抛出错误&#xff0c;但通过查询window对象&…

计算机组成实验v代表什么,2014计算机组成原理实验指导V1.3.docx

文档介绍&#xff1a;实验一运算器组成实验实验目的熟悉Logisim软件平台。掌握运算器基本工作原理掌握运算溢出检测的原理和实现方法;理解有符号数和无符号数运算的区别;理解基于补码的加/减运算实现原理;熟悉运算器的数据传输通路。实验环境Logisim是一款数字电路模拟的教育软…