《P3403 跳楼机》

题目背景

DJL 为了避免成为一只咸鱼,来找 srwudi 学习压代码的技巧。

题目描述

Srwudi 的家是一幢 h 层的摩天大楼。由于前来学习的蒟蒻越来越多,srwudi 改造了一个跳楼机,使得访客可以更方便的上楼。

经过改造,srwudi 的跳楼机可以采用以下四种方式移动:

  1. 向上移动 x 层;
  2. 向上移动 y 层;
  3. 向上移动 z 层;
  4. 回到第一层。

一个月黑风高的大中午,DJL 来到了 srwudi 的家,现在他在 srwudi 家的第一层,碰巧跳楼机也在第一层。DJL 想知道,他可以乘坐跳楼机前往的楼层数。

输入格式

第一行一个整数 h,表示摩天大楼的层数。

第二行三个正整数,分别表示题目中的 x,y,z。

输出格式

一行一个整数,表示 DJL 可以到达的楼层数。

输入输出样例

输入 #1复制

15
4 7 9

输出 #1复制

9

输入 #2复制

33333333333
99005 99002 100000

输出 #2复制

33302114671

说明/提示

可以到达的楼层有:1,5,8,9,10,12,13,14,15。

1≤h≤263−1,1≤x,y,z≤105。

代码实现:

#include<bits/stdc++.h>
#define int long long
int head[2000005],edgeCount;
struct EdgeData{
int target;
int next;
int weight;
};
EdgeData edges[2000005];
void addEdge(int fromNode,int toNode,int weight) {
edgeCount++;
edges[edgeCount].target=toNode;
edges[edgeCount].weight=weight;
edges[edgeCount].next=head[fromNode];
head[fromNode]=edgeCount;
}
int distance[1000005];
bool visited[1000005];
struct QueueNode{
int distance;
int position;
bool operator < (const QueueNode &x) const {
return x.distance < distance;
}
};
std::priority_queue<QueueNode> priorityQueue;
void dijkstra(int start) {
memset(distance,0x3f,sizeof(distance));
distance[start]=0;
priorityQueue.push((QueueNode){0,start});
while(!priorityQueue.empty()) {
QueueNode current=priorityQueue.top();
priorityQueue.pop();
int currentNode=current.position;
if(visited[currentNode]) continue;
visited[currentNode]=1;
for(int i=head[currentNode];i;i=edges[i].next) {
int nextNode=edges[i].target;
if(distance[nextNode]>distance[currentNode]+edges[i].weight) {
distance[nextNode]=distance[currentNode]+edges[i].weight;
priorityQueue.push((QueueNode){distance[nextNode],nextNode});
}
}
}
}
int maxHeight,modValue,stepY,stepZ,result=0;
signed main() {
std::cin>>maxHeight>>modValue>>stepY>>stepZ;

//特判
if(modValue==1 || stepY==1 || stepZ==1) {
std::cout<<maxHeight;
return 0;
}
maxHeight--;
//建图
for(int i=0;i<modValue;i++) {
addEdge(i,(i+stepZ)%modValue,stepZ);
addEdge(i,(i+stepY)%modValue,stepY);
}
dijkstra(1);
for(int i=0;i<modValue;i++) {
if(maxHeight>=distance[i]) result+=(maxHeight-distance[i])/modValue+1;
//注意这个地方要多加一条判断
}
std::cout<<result;
return 0;
}

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

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

相关文章

【GPT-OSS 全面测评】释放推理、部署和自主掌控的 AI 新纪元

目录 一、背景与意义 二、核心参数对比 三、性能评测&#xff08;Benchmark&#xff09; 四、硬件适配与优化 五、安全性与风险 六、部署方式 七、适用场景 八、大型语言模型对比表&#xff08;2025 年 8 月版&#xff09; 总结 一、背景与意义 &#x1f4a1; 为什么…

医疗健康Agent:诊断辅助与患者管理的AI解决方案

医疗健康Agent&#xff1a;诊断辅助与患者管理的AI解决方案 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0c;每一个特性都是我放…

python魔法属性__doc__介绍

doc: 魔法属性。类、函数的描述信息。 __doc__在python中类的使用方法&#xff1a; class Person(object):"""人类---类的描述信息""" # 只能使用多行注释&#xff0c;单行注释无效passprint(Person.__doc__)运行结果如图所示&#xff1a;__d…

PostgreSQL 批量COPY导入优化参数配置

&#x1f4a1; 场景假设我们进行的是 频繁批量导入、对数据持久性容忍较高 的场景&#xff0c;比如日志表、缓存表、临时数据表等。如果系统崩溃可重导入&#xff0c;那我们就可以牺牲一点写入安全性来换极致性能。⚙️ 参数配置推荐&#xff08;postgresql.conf&#xff09;参…

BeanDefinition 与 Bean 生命周期(面试高频考点)

Bean 是 Spring 应用的核心组件&#xff0c;而 BeanDefinition 作为 Bean 的 “元数据描述”&#xff0c;贯穿了 Bean 从定义到销毁的全生命周期。理解 BeanDefinition 的加载注册机制&#xff0c;以及 Bean 的完整生命周期&#xff0c;是掌握 Spring 容器管理逻辑的关键&#…

node.js 学习笔记2 进程/线程、fs

进程和线程 进程&#xff1a;进行中的程序。比如有一段程序&#xff0c;程序已经载入内存了&#xff0c;CPU正在执行这段程序&#xff0c;这时候就会产生一个进程。进程&#xff0c;也可以看做程序的一次执行过程。 在window中打开任务管理器&#xff0c;可以查看计算机中的所…

【线性代数】其他

上一节&#xff1a;【线性代数】线性方程组与矩阵——&#xff08;3&#xff09;线性方程组解的结构 总目录&#xff1a;【线性代数】目录 文章目录11. 向量的内积、长度及正交性12. 方阵的特征值与特征向量13. 相似矩阵14. 对称矩阵的对角化15. 二次型及其标准形11. 向量的内积…

Spring Cloud LoadBalancer 实现自定义负载均衡策略(基于服务元数据筛选)

&#x1f4a1; Spring Cloud LoadBalancer 实现自定义负载均衡策略&#xff08;基于服务元数据筛选&#xff09; 在微服务架构中&#xff0c;我们常常希望对服务实例进行更精细的路由控制&#xff0c;例如&#xff1a; 灰度发布&#xff1a;不同环境访问不同版本操作系统差异&a…

Javaweb(1)html、css、js

注:图来自黑马 一、HTML(超文本标记语言) HTML 是网页的 “骨架”,负责定义页面的结构和内容,通过标签(tag)描述文本、图片、链接等元素。 1. 基础结构 文档声明:<!DOCTYPE html>(告诉浏览器这是 HTML5 文档)。 根标签:<html> 包裹整个文档,包含 &l…

MQTT:Dashboard数据集成(待补充)

目录一、工作原理二、基本使用三、连接器基本使用一、工作原理 数据集成使用sink和source组件与外部数据系统对接。 sink&#xff1a;用于将消息发送到外部数据系统&#xff0c;例如MySQL、Kafka或Http服务等。source&#xff1a;用于从外部数据系统接收消息&#xff0c;例如…

VisionMoE本地部署的创新设计:从架构演进到高效实现

本地部署VisionMoE的时代需求 在人工智能技术飞速发展的今天&#xff0c;视觉语言模型(Vision-Language Models, VLMs)已成为多模态理解的核心工具。然而&#xff0c;传统的大型视觉语言模型主要依赖云端GPU集群进行部署和推理&#xff0c;这不仅带来了高昂的运营成本&#xf…

机试备考笔记 8/31

2025年8月8日 小结&#xff1a;省流&#xff0c;写了俩道巨简单的&#xff08;被卡好久的传参指针和指针的引用的区别&#xff09;&#xff0c;一题递归&#xff08;意满&#xff09;&#xff1b;这笔记还是0809写的&#xff0c;啧&#xff0c;今天可能不写了&#xff0c;明天也…

java9学习笔记-part2

进程 API在 Java 9 之前&#xff0c;Process API 仍然缺乏对使用本地进程的基本支持&#xff0c;例如获取进程的 PID 和所有者&#xff0c;进程的开始时间&#xff0c;进程使用了多少 CPU 时间&#xff0c;多少本地进程正在运行等。Java 9 向 Process API 添加了一个名为 Proce…

AI智能编程工具汇总

AI智能编程工具汇总 以下是一份关于主流大模型开发工具的综合介绍&#xff0c;涵盖 Gemini CLI、Qwen-Code、Kimi K2 等关键工具的功能特性、安装方式与使用建议。 &#x1f31f; Gemini CLI 开发者&#xff1a;Google DeepMind 简介&#xff1a;命令行工具&#xff0c;用于调…

算法_python_牛客华为机试笔记_01

刷题是必须的&#xff0c;通过刷题以及别人对题目的解析&#xff0c;可以快速理解&#xff0c;提高效率。 00_题库与参考视频 华为机试_在线编程_牛客网 HJ3 明明的随机数_哔哩哔哩_bilibili 这套华为机试是华为笔试面试机考在线练习&#xff0c;共138道题&#xff0c;目前…

Java基础-完成局域网内沟通软件的开发

目录 案例要求&#xff1a; 实现思路&#xff1a; itheima-chat-server包 src com.itheima Constant类&#xff1a; Server类: ServerReaderThread类: itheima-chat-system包 src com.itheima.ui ChatEntryFrame类&#xff1a; ClientChatFrame类: ClientReaderTh…

windows内核研究(内存管理-线性地址的管理)

内存管理线性地址的管理 进程空间的地址划分分区x86 32位Windows空指针赋值区0x00000000 - 0x0000FFFF用户模式区0x00010000 - 0x7FFEFFFF64KB禁入区0x7FFF0000 - 0x7FFFFFFF内核0x80000000 - 0xFFFFFFFF线性地址有4GB&#xff0c;但是并不是所有的地方都能访问&#xff08;这里…

【问题解决】使用patch-package修改node-models中的源码

文章目录一、应用场景二、patch-package 和 postinstallpatch-packagepostinstall三、操作步骤1、使用yarn安装patch-package和postinstall-postinstall2、修改package.json3、修改node-model中源码、保存。4、找到修改文件对应的包名5、使用git将新增的patches文件同步到仓库6…

当配置项只支持传入数字,即无法指定单位为rem,需要rem转px

您好&#xff01;针对您 Vue 3 Element Plus 的技术栈&#xff0c;要优雅且符合大厂规范地解决这个问题&#xff0c;最佳实践是创建一个响应式的 Composition API (组合式函数)。 这个方法完全遵循 Vue 3 的设计哲学&#xff0c;具有高内聚、低耦合、可复用、类型安全&#xf…

谷歌搜索 sg_ss 逆向分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;部分python代码sg_ss cp.call(get_sg_…