P3509 [POI 2010] ZAB-Frog[单调队列+倍增快速幂思想]

P3509 [POI 2010] ZAB-Frog

时间限制: 1.00s 内存限制: 125.00MB

复制 Markdown

中文

退出 IDE 模式

题目描述

在一个特别长且笔直的 Byteotian 小溪的河床上,有 n 块石头露出水面。它们距离小溪源头的距离分别为 p1​<p2​<⋯<pn​。一只小青蛙正坐在其中一块石头上,准备开始它的跳跃训练。每次青蛙跳跃到距离它所在石头第 k 近的石头上。具体来说,如果青蛙坐在位置 pi​ 的石头上,那么它将跳到这样的 pj​ 上,使得:

∣{pa​:∣pa​−pi​∣<∣pj​−pi​∣}∣≤k and ∣{pa​:∣pa​−pi​∣≤∣pj​−pi​∣}∣>k

如果 pj​ 不是唯一的,那么青蛙在其中选择距离源头最近的石头。对于每一块石头分别计算,若青蛙从这块石头开始跳跃,经过 m 次跳跃后最终会停留在哪一块石头上?

输入格式

标准输入的第一行包含三个整数 n、k 和 m(1≤k<n≤1000000,1≤m≤1018),用空格分隔,分别表示石头的数量、参数 k 和计划跳跃的次数。第二行包含 n 个整数 pj​(1≤p1​<p2​<⋯<pn​≤1018),用空格分隔,表示小溪河床上连续石头的位置。

输出格式

你的程序应在标准输出上打印一行,包含 n 个整数 r1​,r2​,⋯,rn​,用空格分隔。数字 ri​ 表示从输入顺序中的第 i 块石头开始跳跃 m 次后,青蛙最终停留的石头编号。

显示翻译

题意翻译

输入输出样例

输入 #1复制运行

5 2 4 1 2 4 7 10

输出 #1复制运行

1 1 3 1 1

说明/提示

样例 #1 解释:

图中展示了青蛙从每块石头跳跃(单次跳跃)到的位置。

题面翻译由 ChatGPT-4o 提供

首先单调队列维护第k大的 首先维护一个长度为k的窗口 我们只需要比较左端右端 如果右端+1 的位置小于左端 那么窗口右滑 直到划不动 然后比较左右的大小 确定跳跃一步的位置

然后根据m开始倍增跳越 类似于快速幂的做法 如果是奇数 那么先跳一次 偶数的话那就令步长连续跳跃两次 也就是步长翻倍 可以类比快速幂理解;

#include <bits/stdc++.h> using namespace std; const int N=1e6+5; #define int long long int net[N],net2[N],ans[N],a[N]; long long n,k,m; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>k>>m; for(int i=1;i<=n;i++)cin>>a[i],ans[i]=i; int l=1,r=k+1; for(int i=1;i<=n;i++){ while(r+1<=n&&a[r+1]-a[i]<a[i]-a[l])l++,r++; int disr=a[r]-a[i],disl=a[i]-a[l]; if(disl>=disr)net[i]=l; else net[i]=r; } while(m){ if(m&1) for(int i=1;i<=n;i++)ans[i]=net[ans[i]]; for(int i=1;i<=n;i++)net2[i]=net[i]; for(int i=1;i<=n;i++)net[i]=net2[net2[i]]; m>>=1; } for(int i=1;i<=n;i++) cout<<ans[i]<<' '; return 0; }

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

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

相关文章

Kronos金融预测模型:8分钟完成千股并行分析的量化神器

Kronos金融预测模型&#xff1a;8分钟完成千股并行分析的量化神器 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在当今快节奏的金融市场中&#xff0c;传…

GLM-ASR-Nano-2512教程:模型安全与隐私保护

GLM-ASR-Nano-2512教程&#xff1a;模型安全与隐私保护 1. 引言 随着自动语音识别&#xff08;ASR&#xff09;技术在智能助手、会议记录和内容创作等场景中的广泛应用&#xff0c;模型的安全性与用户数据的隐私保护问题日益凸显。GLM-ASR-Nano-2512 是一个强大的开源语音识别…

OpenCode:零配置终端AI助手的终极使用指南

OpenCode&#xff1a;零配置终端AI助手的终极使用指南 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手&#xff0c;模型灵活可选&#xff0c;可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 还在为复杂的AI工具配置而烦恼&am…

从噪音中提取纯净人声|FRCRN语音降噪镜像助力AI音频处理

从噪音中提取纯净人声&#xff5c;FRCRN语音降噪镜像助力AI音频处理 1. 引言&#xff1a;语音降噪的现实挑战与技术突破 在实际音频采集场景中&#xff0c;背景噪声、混响和干扰音源严重影响语音质量。无论是远程会议、语音助手识别&#xff0c;还是播客制作与安防监听&#…

RexUniNLU金融情报:企业关系图谱

RexUniNLU金融情报&#xff1a;企业关系图谱 1. 引言 在金融情报分析领域&#xff0c;从非结构化文本中高效提取关键实体及其复杂关系是构建企业知识图谱的核心挑战。传统信息抽取系统往往依赖大量标注数据&#xff0c;且难以同时支持命名实体识别、关系抽取、事件检测等多任…

Open-LLM-VTuber聊天记录管理终极指南:如何永久保存和智能切换对话历史

Open-LLM-VTuber聊天记录管理终极指南&#xff1a;如何永久保存和智能切换对话历史 【免费下载链接】Open-LLM-VTuber Talk to LLM by voice with Live2D that runs offline on multiple platforms. An attempt to build AI VTuber neuro-sama. 项目地址: https://gitcode.co…

OpenCore Legacy Patcher完整教程:老款Mac升级终极指南

OpenCore Legacy Patcher完整教程&#xff1a;老款Mac升级终极指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher&#xff08;OCLP&#xff09;…

OpenCode实战指南:解锁终端AI编程新体验

OpenCode实战指南&#xff1a;解锁终端AI编程新体验 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手&#xff0c;模型灵活可选&#xff0c;可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 还在为传统IDE的臃肿和响应迟缓而烦…

告别手动调参!YOLOv10自动超参优化实测真香

告别手动调参&#xff01;YOLOv10自动超参优化实测真香 在工业视觉系统日益复杂的今天&#xff0c;如何用有限的算力训练出高性能、高稳定性的目标检测模型&#xff0c;成了许多团队面临的现实挑战。以往一个项目上线前&#xff0c;工程师往往要花费数天甚至数周时间反复调试学…

用Voice Sculptor捏声音,基于LLaSA和CosyVoice2的语音合成实践

用Voice Sculptor捏声音&#xff0c;基于LLaSA和CosyVoice2的语音合成实践 1. 引言&#xff1a;从“文本到语音”到“指令化语音定制” 传统语音合成&#xff08;Text-to-Speech, TTS&#xff09;系统大多依赖预设音色或固定模型参数&#xff0c;用户只能在有限的几个声音选项…

突破软件试用限制的终极解决方案:从原理到实战全解析

突破软件试用限制的终极解决方案&#xff1a;从原理到实战全解析 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We h…

基于Altium Designer的原理图版本控制策略

让 Altium Designer 的原理图设计“活”起来&#xff1a;一套真正实用的 Git 版本控制实战指南 你有没有遇到过这样的场景&#xff1f; 团队里两位工程师同时改了同一张电源原理图&#xff0c;合并时发现冲突&#xff0c;最后谁也不知道哪个版本才是“最终版”&#xff1b; …

AtlasOS系统优化全攻略:释放Windows隐藏性能的终极指南

AtlasOS系统优化全攻略&#xff1a;释放Windows隐藏性能的终极指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atla…

深入掌握CodeAI终端智能助手的实战技巧

深入掌握CodeAI终端智能助手的实战技巧 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手&#xff0c;模型灵活可选&#xff0c;可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 如何在终端中快速解决编程难题&#xff1f;CodeA…

3步彻底解决Cursor试用限制:从提示到无限使用的完整指南

3步彻底解决Cursor试用限制&#xff1a;从提示到无限使用的完整指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. W…

轻量级AI对话系统搭建:Qwen1.5-0.5B-Chat全流程部署教程

轻量级AI对话系统搭建&#xff1a;Qwen1.5-0.5B-Chat全流程部署教程 1. 引言 1.1 学习目标 本文旨在为开发者提供一套完整、可落地的轻量级AI对话系统部署方案&#xff0c;基于阿里通义千问开源模型 Qwen1.5-0.5B-Chat&#xff0c;结合 ModelScope 生态与 Flask Web 框架&am…

历史人物复活:用AWPortrait-Z还原古代肖像

历史人物复活&#xff1a;用AWPortrait-Z还原古代肖像 1. 技术背景与应用价值 近年来&#xff0c;人工智能在图像生成领域取得了突破性进展&#xff0c;尤其是基于扩散模型&#xff08;Diffusion Model&#xff09;的文生图技术&#xff0c;使得从文本描述生成高质量人像成为…

HY-MT1.5-1.8B技术揭秘:小模型高效翻译的奥秘

HY-MT1.5-1.8B技术揭秘&#xff1a;小模型高效翻译的奥秘 1. 引言&#xff1a;轻量级翻译模型的崛起 在多语言交流日益频繁的今天&#xff0c;高质量、低延迟的机器翻译需求持续增长。传统大参数量翻译模型虽然性能优越&#xff0c;但往往受限于高计算成本和部署复杂度&#…

GameBoost Pro:跨平台游戏性能优化工具的完整使用指南

GameBoost Pro&#xff1a;跨平台游戏性能优化工具的完整使用指南 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 还在为游戏卡顿、…

批量处理音频文件?这个ASR镜像太适合办公场景了

批量处理音频文件&#xff1f;这个ASR镜像太适合办公场景了 1. 引言&#xff1a;办公场景下的语音转写需求 在现代办公环境中&#xff0c;会议记录、访谈整理、语音笔记等场景对高效准确的语音识别技术提出了迫切需求。传统的手动转录方式耗时耗力&#xff0c;而通用语音识别…