物语--解题报告

2024-03-04 23:20
文章标签 报告 解题 物语

本文主要是介绍物语--解题报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【问题描述】

某一天,少年邂逅了同病相连的IA。见面后,IA一把牵起少年的手,决定和他一起逃离部落,离开这个无法容身的是非之地。

要逃离部落,少年和IA就需要先选择一条耗时最少的路线,从而避免被部落的大人们抓到。部落可以大致分为N个区域,少年和IA在区域1,部落的出口设在区域N。此外部落还有M条连接两个区域道路。道路是无向的,没有一条道路的两端连接相同的区域,也没有两条道路所连接的两个区域完全相同。对于其中前(M-1)条道路,其通过时间是确定的,但最后一条道路,由于地理因素,通过其的时间会不断变化。

现在,少年和IA得知了在K个不同的时段里,通过第M条道路的时间,请您分别计算出在这K个时段中逃离部落的最少时间,以帮助他们确定行动的时刻。

 

【输入格式】

第一行三个整数N,M,K,分别表示区域数,道路数,询问数。

接下来M-1行每行三个整数ui,vi,wi(ui≠vi,1≤ui,vi≤N,0<wi≤10^9),表示这条道路连接的区域和通过时间。

紧接着是两个整数ui,vi(ui≠vi,1≤ui,vi≤N),表示第M条道路连接的区域。

最后K行,每行一个正整数xi(0<xi≤10^9),表示目前第M条道路的通过时间。

 

【输出格式】

输出共计K行,每行一个整数,表示对应时段逃离部落的最短时间。如果在该时段内无法逃离,输出“+Inf”。

 

【样例输入1】

4 5 4

1 2 7

1 3 4

2 4 3

3 4 6

2 3

1

2

4

6

 

【样例输出1】

8

9

10

10

 

【样例说明1】

如图1,红色的圆圈表示少年和IA的出发地,绿色的圆圈表示目的地,连线表示道路,旁边的数字表示通过该道路的时间。最后一条道路时间未知用x表示。图中不重复经过同一区域的路径有4条,分别为1→2→4,1→3→4,1→2→3→4,1→3→2→4,其所需时间随x的关系如下表所示:

 

可以证明,不存在更优的解,故将上表最后一列输出。

 

【样例输入2】

4 3 1

1 2 7

1 3 4

2 3

9

 

【样例输出2】

+Inf

 

【样例说明2】

    如图2,起点和终点不连通,故少年和IA无法逃离部落。

 

【数据范围】

 

测试点编号

N

M

K

其他

1

N = 2

M = 1

K = 1

随机生成

2

N = 5

M = 4

K = 1

随机生成

3

N = 5

M = 10

K = 5

随机生成

4

N = 50

M = 100

K = 10

随机生成

5

N = 75

M = 200

K = 10

随机生成

6

N = 100

M = 1000

K = 10

随机生成

7

N = 200

M = 2000

K = 10

随机生成

8

N = 300

M = 3000

K = 10

随机生成

9

N = 1000

M = 30 000

K = 10

随机生成

10

N = 2000

M = 50 000

K = 10

随机生成

11

N = 10 000

M = 200 000

K = 10

随机生成

12

N = 30 000

M = 300 000

K = 10

随机生成

13

N = 50 000

M = 300 000

K = 30 000

随机生成

14

N = 100 000

M = 500 000

K = 30 000

随机生成

15

N = 100 000

M = 500 000

K = 30 000

随机生成

16

N = 120 000

M = 179 998

K = 10

N/A

17

N = 180 000

M = 299 997

K = 10

N/A

18

N = 180 000

M = 269 998

K = 10

N/A

19

N = 180 000

M = 419 991

K = 30 000

N/A

20

N = 200 000

M = 399 996

K = 30 000

N/A

 【题解】

首先把第M个边去掉求最短路,分别求出1到任何一个点的最短路,以及任何一个点到N的最短路(反向spfa)。
然后当第M个边(S,T)的长度变化的时候,只需要比较dis[1][S]+bian[S][T]+dis[T][N],dis[1][N]即可。

代码附上

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<ctime>
#include<queue>
#define MAXN 200005
#define MAXM 500005
#define INF 4611686010000000000LL
#define pr pair<LL, int>
#define mp make_pair
#define x first
#define y second
using namespace std ;
typedef long long LL ;
struct road
{int x, next ;LL dis ;
} r[MAXM*2] ;
int n,m,k;
int ST,ED;
LL S[MAXN],T[MAXN];
int st[MAXN],w,vis[MAXN] ;
priority_queue<pr>q;
void add(int x,int y,LL dis)
{r[++w].x=y;r[w].next=st[x] ;r[w].dis=dis;st[x]=w ;
}
void spfa(int x)
{int tmp;LL now;for(int i=1;i<=n;i++) T[i] = INF ;T[x]=0;q.push(mp(0,x)) ;while(!q.empty()){x=q.top().y;now=q.top().x;q.pop() ;if(-now>T[x])continue ;now=-now ;for(int i=st[x];i;i=r[i].next)if(T[tmp=r[i].x]>T[x]+r[i].dis){T[tmp]=T[x]+r[i].dis ;q.push(mp(-T[tmp],tmp)) ;}	}
}
int main()
{int fr,to;LL dt,tmp;scanf("%d%d%d",&n,&m,&k) ;for(int i=1,tmp=0;i<m;i++){scanf("%d%d%I64d",&fr,&to,&dt) ;tmp+=dt;add(fr,to,dt),add(to,fr,dt) ;}scanf("%d%d",&ST,&ED);spfa(1);//正向 memcpy(S,T,sizeof(S)) ;spfa(n);//反向 for(int i=1;i<=k;i++){scanf("%I64d",&dt) ;tmp=min(S[n],min(S[ST]+T[ED],S[ED]+T[ST])+dt);if(tmp==INF) printf("+Inf\n") ;else printf("%I64d\n", tmp) ;}
}

这篇关于物语--解题报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/774632

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

【中国国际航空-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如

hdu1879(解题报告)

继续畅通工程                                   Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

hdu2033(解题报告)

人见人爱A+B                                   Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

HDU3791(解题报告)

二叉搜索树                      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                                          Total Subm