news 2026/6/10 15:25:19

打卡信奥刷题(2749)用C++实现信奥题 P3645 [APIO2015] 雅加达的摩天楼

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2749)用C++实现信奥题 P3645 [APIO2015] 雅加达的摩天楼

P3645 [APIO2015] 雅加达的摩天楼

题目描述

印尼首都雅加达市有NNN座摩天楼,它们排列成一条直线,我们从左到右依次将它们编号为000N−1N − 1N1。除了这NNN座摩天楼外,雅加达市没有其他摩天楼。

MMM只叫做 “doge” 的神秘生物在雅加达市居住,它们的编号依次是000M−1M − 1M1。编号为iii的 doge 最初居住于编号为BiB_iBi的摩天楼。每只 doge 都有一种神秘的力量,使它们能够在摩天楼之间跳跃,编号为iii的 doge 的跳跃能力为PiP_iPiPi>0P_i > 0Pi>0)。

在一次跳跃中,位于摩天楼bbb而跳跃能力为ppp的 doge 可以跳跃到编号为b−pb - pbp(如果0≤b−p<N0 \leq b - p < N0bp<N)或b+pb + pb+p(如果0≤b+p<N0 \leq b + p < N0b+p<N)的摩天楼。

编号为000的 doge 是所有 doge 的首领,它有一条紧急的消息要尽快传送给编号为111的 doge。任何一个收到消息的 doge 有以下两个选择:

  • 跳跃到其他摩天楼上;
  • 将消息传递给它当前所在的摩天楼上的其他 doge。

请帮助 doge 们计算将消息从000号 doge 传递到111号 doge 所需要的最少总跳跃步数,或者告诉它们消息永远不可能传递到111号 doge。

输入格式

输入的第一行包含两个整数NNNMMM

接下来MMM行,每行包含两个整数BiB_iBiPiP_iPi

输出格式

输出一行,表示所需要的最少步数。如果消息永远无法传递到111号 doge,输出−1−11

输入输出样例 #1

输入 #1

5 3 0 2 1 1 4 1

输出 #1

5

说明/提示

【样例解释】

下面是一种步数为555的解决方案:

000号 doge 跳跃到222号摩天楼,再跳跃到444号摩天楼(222步)。

000号 doge 将消息传递给222号 doge。

222号 doge 跳跃到333号摩天楼,接着跳跃到222号摩天楼,再跳跃到111号摩天楼(333步)。

222号 doge 将消息传递给111号 doge。

【数据范围】

所有数据都保证0≤Bi<N0 \leq B_i < N0Bi<N

子任务 1 (10 分)1≤N≤101 \leq N \leq 101N10

1≤Pi≤101 \leq P_i \leq 101Pi10

2≤M≤32 \leq M \leq 32M3

子任务 2 (12 分)1≤N≤1001 \leq N \leq 1001N100

1≤Pi≤1001 \leq P_i \leq 1001Pi100

2≤M≤20002 \leq M \leq 20002M2000

子任务 3 (14 分)1≤N≤20001 \leq N \leq 20001N2000

1≤Pi≤20001 \leq P i ≤ 20001Pi2000

2≤M≤20002 \leq M \leq 20002M2000

子任务 4 (21 分)1≤N≤20001 \leq N \leq 20001N2000

1≤Pi≤20001 \leq P_i \leq 20001Pi2000

2≤M≤300002 \leq M \leq 300002M30000

子任务 5 (43 分)1≤N≤300001 \leq N \leq 300001N30000

1≤Pi≤300001 \leq P_i \leq 300001Pi30000

2≤M≤300002 \leq M \leq 300002M30000

C++实现

#include<bits/stdc++.h>usingnamespacestd;constintN=30000+5;bitset<N>vis[N];vector<int>p[N];structnode{intpos,jump,dep;node(){}node(int_p,int_j,int_d){pos=_p;jump=_j;dep=_d;}};deque<node>q;intn,B[N],P[N];voidbfs(){node u;while(!q.empty()){u=q.front();q.pop_front();//cout<<u.pos<<" "<<u.jump<<endl;if(u.pos==B[1])cout<<u.dep,exit(0);if(vis[u.pos][u.jump])continue;vis[u.pos][u.jump]=1;for(inti=0;i<p[u.pos].size();++i)q.push_front(node(u.pos,p[u.pos][i],u.dep));if(u.pos-u.jump>=0)q.push_back(node(u.pos-u.jump,u.jump,u.dep+1));if(u.pos+u.jump<n)q.push_back(node(u.pos+u.jump,u.jump,u.dep+1));}cout<<-1;}intmain(){intm;cin>>n>>m;for(inti=0;i<m;++i){cin>>B[i]>>P[i];p[B[i]].push_back(P[i]);}q.push_back(node(B[0],P[0],0));bfs();return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:48:42

[特殊字符]_Web框架性能终极对决:谁才是真正的速度王者[20260126043913]

作为一名拥有10年开发经验的全栈工程师&#xff0c;我经历过无数Web框架的兴衰更替。从早期的jQuery时代到现在的Rust高性能框架&#xff0c;我见证了Web开发技术的飞速发展。今天我要分享一个让我震惊的性能对比测试&#xff0c;这个测试结果彻底改变了我对Web框架性能的认知。…

作者头像 李华
网站建设 2026/6/10 13:14:12

基于Java的市场公共服务设施智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ? 市场公共服务设施智慧管理系统通过整合摊位、租户、租赁合同等多方面的信息&#xff0c;提供了一套全面的解决方案。该系统覆盖了从数据录入到统计分析等多个功能模块&#xff0c;并支持预警管理与安全管理等功能&#xff0c;确保市场的高…

作者头像 李华
网站建设 2026/6/10 13:42:35

90%的人没调对:电子产品风扇调速的进阶方法与步骤详解

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 &#x1f48c;公众号&#xff1a;莱歌数字&#xff08;B站同名&#xff09; &#x1f4f1;个人微信&#xff1a;yanshanYH 211、985硕士&#xff0c;从业16年 从…

作者头像 李华
网站建设 2026/6/10 13:44:31

智能助手助力软件工程毕设:8款AI应用优化论文撰写与编程复现

文章总结表格&#xff08;工具排名对比&#xff09; 工具名称 核心优势 aibiye 精准降AIGC率检测&#xff0c;适配知网/维普等平台 aicheck 专注文本AI痕迹识别&#xff0c;优化人类表达风格 askpaper 快速降AI痕迹&#xff0c;保留学术规范 秒篇 高效处理混AIGC内容&…

作者头像 李华
网站建设 2026/6/10 15:09:49

强烈安利9个AI论文工具,自考论文写作必备!

强烈安利9个AI论文工具&#xff0c;自考论文写作必备&#xff01; AI 工具如何让论文写作更高效 在自考论文写作过程中&#xff0c;许多同学都会遇到选题困难、逻辑混乱、语言表达不清晰等问题。而随着 AI 技术的不断发展&#xff0c;越来越多的 AI 工具开始被广泛应用于学术…

作者头像 李华
网站建设 2026/6/9 19:55:51

强烈安利!继续教育9款AI论文写作软件测评TOP9

强烈安利&#xff01;继续教育9款AI论文写作软件测评TOP9 2026年继续教育AI论文写作工具测评&#xff1a;精准选型&#xff0c;提升效率 在当前学术研究日益数字化的背景下&#xff0c;AI论文写作工具已成为科研工作者不可或缺的辅助工具。尤其对于继续教育领域的学习者与研究…

作者头像 李华