【2018.3.10】模拟赛之四-ssl2133 腾讯大战360【SPAF,图论,最短路径】

目录地址

前言

打错了一个地方之接60,还有输出“Peace”能拿60。还有题目坑爹害得我用了哈希,可以无视 QAQ


正题

有一个n*n的图,有m条边,不知道几个城市,给出两个位置,求两个位置移动到相遇(不能再路上)的最短路径。


输入输出(需要自取)

Input

输入数据第一行:N和M(用空格隔开) 表示这是一个N*N的图并且有M条边,第二行到第M+1行 为这个图的详细信息。
每行共有被空格隔开的三个数:a b c。表示编号为a的城市到编号为b的城市
有一个双向边,并且要过这条双向边所需要花费的时间为c。
最后一行有两个数:S和T,S表示腾讯所处的城市(也就是深圳),T表示360所处的
城市(也就是北京)

Output

输出只有一行,D,表示二者“相遇”的最短时间。当然,如果无法相遇则输出“Peace!”

Sample Input

3 3
1 2 1
2 3 1
1 3 1
1 3

Sample Output

1


解题思路

两遍SPFA,然后枚举相遇点。无视哈希


代码

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int p=29989,air=-117901064;
struct woc{int x,y,w,next;
};
int n,m,sum,f[p+1],ls[p+1],f2[p+1],hash[p+1],state[p+1],head,tail,num;
bool v[p+1];
woc line[10001];
int hashmath(int x)
{return abs(x)%p;
}
int locate(int x)
{int wz=hashmath(x);int i=0;while (i<p && hash[(wz+i)%p]!=x && hash[(wz+i)%p]!=air)i++;return (wz+i)%p;
}
void Spfa(int x)//SPFA不解释
{memset(f,127/3,sizeof(f));state[1]=locate(x);v[state[1]]=true;f[state[1]]=0;int w=0;head=0;tail=1;do{head=head%p+1;w=ls[state[head]];while (w!=0){if (f[line[w].x]+line[w].w<f[line[w].y]){f[line[w].y]=f[line[w].x]+line[w].w;if (!v[line[w].y]){v[line[w].y]=true;tail=tail%p+1;state[tail]=line[w].y;}}w=line[w].next;}v[state[head]]=false;}while (head!=tail);
}
void Spfa2(int x)
{memset(f2,127/3,sizeof(f2));state[1]=locate(x);v[state[1]]=true;f2[state[1]]=0;int w=0;head=0;tail=1;do{head=head%p+1;w=ls[state[head]];while (w!=0){if (f2[line[w].x]+line[w].w<f2[line[w].y]){f2[line[w].y]=f2[line[w].x]+line[w].w;if (!v[line[w].y]){v[line[w].y]=true;tail=tail%p+1;state[tail]=line[w].y;}}w=line[w].next;}v[state[head]]=false;}while (head!=tail);
}
int main()
{scanf("%d%d",&n,&m);for (int i=0;i<p;i++) hash[i]=air;int xx,yy,ww,wz1,wz2;for (int i=1;i<=m;i++){scanf("%d%d%d",&xx,&yy,&ww);wz1=locate(xx);wz2=locate(yy);if (hash[wz1]==air) hash[wz1]=xx;if (hash[wz2]==air) hash[wz2]=yy;line[++num].x=wz1;line[num].y=wz2;line[num].w=ww;line[num].next=ls[wz1];ls[wz1]=num;line[++num].x=wz2;line[num].y=wz1;line[num].w=ww;line[num].next=ls[wz2];ls[wz2]=num;//无向图建邻接表}scanf("%d%d",&xx,&yy);Spfa(xx);Spfa2(yy);//两遍SPFAsum=-air;for (int i=0;i<p;i++)//枚举相遇点{if (hash[i]!=air){sum=min(sum,max(f[i],f2[i]));//更新最大值}}if (sum==-air) printf("Peace!");//判断无法相遇else printf("%d",sum);return 0;
}

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

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

相关文章

互联网级监控系统必备-时序数据库之Influxdb技术

时间序列数据库&#xff0c;简称时序数据库&#xff0c;Time Series Database&#xff0c;一个全新的领域&#xff0c;最大的特点就是每个条数据都带有Time列。 时序数据库到底能用到什么业务场景&#xff0c;答案是&#xff1a;监控系统。 Baidu一下&#xff0c;互联网监控系…

存放80000000学生成绩的集合,怎么统计平均分性能高

大家好&#xff0c;我是雄雄&#xff0c;好久不介绍一下我&#xff0c;就被大家淡忘了……我们都知道&#xff0c;遍历集合的方式最常用的有两种&#xff0c;一种是使用下标的方式遍历&#xff0c;第二种便是使用foreach遍历&#xff0c;代码分别如下&#xff1a;使用下标的方法…

数组元素的默认值

数组元素的默认值 数组元素是整型&#xff1a;0 数组元素是浮点型&#xff1a;0.0 数组元素是char型&#xff1a;0或’\u0000’&#xff0c;而非’0’ 数组元素是boolean型&#xff1a;false 数组元素是引用数据类型&#xff1a;null eg 非数组元素必须初始化后才能进行使用…

ssl初一组周六模拟赛【2018.3.10】

前言 先说一下成绩&#xff08;因某人要求去掉了某人&#xff09;&#xff1a; 姓名成绩xjq280wyc200(本人)lrz200zyc100hjq40lw30hzb0 正题 题目1&#xff1a;Clocest &#xff08;ssl2574&#xff09; 贪心30分&#xff0c;改后100分dfs 链接&#xff1a; http://blog.c…

如何重构箭头型代码

转载自 如何重构"箭头型"代码 本文主要起因是&#xff0c;一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论&#xff0c;在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功&#xff0c;似乎不太值得写一篇文章&#xff0c;不过我…

SpringMVC的上传与下载

文章目录SpringMVC的上传SpringMVC的下载SpringMVC的上传 [1] 上传的功能需求 随着我们互联网的发展&#xff0c;我们的用户从直接访问网站获取信息。变为希望将自己本地的 资源发送给服务器&#xff0c;让服务器提供给其他人使用或者查看。还有部分的用户希望可以将 本地的资…

中秋节支付宝口令红包解析

大家好&#xff0c;我是雄雄。继上篇文章&#xff08;10.1日&#xff09;发完之后就没有再日更公众号了&#xff0c;给自己也放几天假。这个假期实在是太太太长了&#xff0c;放的我都心气憔悴&#xff01;出去玩吧&#xff0c;没地儿去&#xff0c;在家吧&#xff0c;除了看书…

asp.net core高级应用:TagHelper+Form

上一篇博客《asp.net core新特性(1):TagHelper》我讲解了TagHelper的基本用法和自定义标签的生成&#xff0c;那么我就趁热打铁&#xff0c;和大家分享一下TagHelper的高级用法~~&#xff0c;大家也可以在我的博客下随意留言。对于初步接触asp.net core的骚年可以看看我对TagHe…

爸妈没多大本事……

本文原创&#xff1a;王晓丹世界上什么都不公平&#xff0c;唯独时间最公平&#xff0c;你是懒惰还是勤奋&#xff0c;时间都会给出结果。每个人都是孤独的&#xff0c;你的人生不会辜负你的。那些流下的泪和那些辛苦的汗水 全都让你成为一个独一无二的自己。把懒惰放一边 &…

我终于搞清楚了和String有关的那点事儿

转载自 我终于搞清楚了和String有关的那点事儿 String&#xff0c;是Java中除了基本数据类型以外&#xff0c;最为重要的一个类型了。很多人会认为他比较简单。但是和String有关的面试题有很多&#xff0c;下面我随便找两道面试题&#xff0c;看看你能不能都答对&#xff1a…

SpringMVC的拦截器

文章目录SpringMVC的拦截器学习SpringMVC的拦截器学习 [1] SpringMVC拦截器的介绍 问题: 在之前学习Servlet的时候&#xff0c;我们学习了过滤器的知识。过滤器的作用是保护 请求的服务器资源&#xff0c;在请求资源被执行之前&#xff0c;如果请求地址符合拦截范围&#xff…

考研英语二大纲22年考研

全国硕士研究生招生考试英语(二)考试大纲(非英语专业)(2022年版)   I.考试性质   英语(一)考试是为高等学校和科研院所招收硕士研究生而设置的具有选拔性质的全国统一入学考试科目&#xff0c;其目的是科学、公平、有效地测试考生对英语语言的运用能力&#xff0c;评价的标…

ssl1763-观光旅游【最小环,Floyd,dijkstra】

正题 就是给出一个无向图&#xff0c;求最小环。 输入输出&#xff08;需要自取&#xff09; Input 每组数据的第一行包含两个正整数&#xff1a;十字路口的个数N(N<100)&#xff0c;另一个是道路的 数目M(M<10000)。接下来的每一行描述一条路&#xff1a;每一行有三个…

物联网模式下的多活数据中心架构认识与实践

做互联网应用很重要的一点是要保证服务可用性&#xff0c;特别是某些业务更是需要7*24小时不间断的对外提供服务&#xff0c;任何停机、宕机都会引起大面积的用户不满。持续可用性是把业务服务化时一个需要考虑的重要指标&#xff0c;很多时候我们都会牺牲一些功能来换取可用性…

subList?? subString???

今天看到了java中List中有个subList方法&#xff0c;感觉很熟悉有没有&#xff1f;没错&#xff0c;在Stirng类中&#xff0c;也有个类似的方法&#xff1a;subString。1String类的subStringString中的subString方法&#xff0c;官方解释是&#xff1a;返回字符串的子字符串&am…

互联网级监控系统必备-时序数据库之Influxdb集群及踩过的坑

上篇博文中&#xff0c;我们介绍了做互联网级监控系统的必备-Influxdb的关键特性、数据读写、应用场景&#xff1a;互联网级监控系统必备-时序数据库之Influxdb 本文中&#xff0c;我们介绍Influxdb数据库集群的搭建&#xff0c;同时分享一下我们使用集群遇到的坑&#xff01;…

考研数学二大纲22年考研

考试科目&#xff1a;高等数学、线性代数   考试形式和试卷结构   一、试卷满分及考试时间   试卷满分为150分&#xff0c;考试时间为180分钟.   二、答题方式   答题方式为闭卷、笔试.   三、试卷内容结构   高等教学 约80%   线性代数 约20%   四、试卷题…

ssl1500-最短路上的统计【Floyd】

正题 个无向图上&#xff0c;没有自环&#xff0c;所有边的权值均为1&#xff0c;对于一个点对&#xff08;a,b&#xff09;,我们要把所有a与b之间所有最短路上的点的总个数输出。 输入输出&#xff08;需要自取&#xff09; Input 第一行n,m,表示n个点&#xff0c;m条边 接…

Java中的subList方法

Java中的subList方法 今天看到了java中List中有个subList的方法&#xff0c;感觉很熟悉有没有&#xff1f;没错&#xff0c;在Stirng类中&#xff0c;也有个类似的方法&#xff1a;subString。 Stirng中的subString方法&#xff0c;官方解释是&#xff1a;返回字符串的子字符串…