news 2026/6/10 17:16:05

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 23:22:05

bert-base-chinese效果展示:中文语义理解案例全解析

bert-base-chinese效果展示&#xff1a;中文语义理解案例全解析 1. 引言&#xff1a;为何选择bert-base-chinese&#xff1f; 在中文自然语言处理&#xff08;NLP&#xff09;任务中&#xff0c;预训练语言模型的性能直接影响下游应用的效果。bert-base-chinese 作为 Google …

作者头像 李华
网站建设 2026/5/23 10:52:26

工业HMI设备中RS485与RS232选用策略完整指南

工业HMI通信接口怎么选&#xff1f;RS485与RS232实战对比全解析你有没有遇到过这样的场景&#xff1a;HMI屏明明代码写得没问题&#xff0c;但现场总时不时“丢包”、数据跳变&#xff0c;重启后又好了&#xff1f;排查半天发现&#xff0c;根源竟然是——接口选错了。在工业自…

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

Qwen3-VL-2B模型详解:视觉语言预训练技术

Qwen3-VL-2B模型详解&#xff1a;视觉语言预训练技术 1. 引言 随着人工智能技术的不断演进&#xff0c;多模态理解能力正成为大模型发展的重要方向。传统的语言模型仅能处理文本输入&#xff0c;难以应对现实世界中图像与文字交织的信息形态。为突破这一限制&#xff0c;阿里…

作者头像 李华
网站建设 2026/5/30 10:27:24

VibeVoice新手踩坑总结,这些细节要注意

VibeVoice新手踩坑总结&#xff0c;这些细节要注意 1. 引言&#xff1a;从部署到生成的常见误区 VibeVoice-TTS-Web-UI 是微软推出的开源对话式文本转语音系统&#xff0c;支持长达90分钟、最多4人角色的自然对话合成。其基于低帧率连续分词与LLM驱动语义理解的技术架构&…

作者头像 李华
网站建设 2026/6/10 1:21:26

基于微信小程序的旅游交流共享平台设计与实现(游迹共享小程序)

前言 &#x1f31e;博主介绍&#xff1a;✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发、文档编写、答疑辅导等。✌…

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

MinerU 2.5-1.2B配置详解:GPU与CPU模式性能对比

MinerU 2.5-1.2B配置详解&#xff1a;GPU与CPU模式性能对比 1. 技术背景与应用场景 在处理PDF文档时&#xff0c;尤其是包含多栏排版、复杂表格、数学公式和图像的学术论文或技术报告&#xff0c;传统文本提取工具往往难以保持原始结构的完整性。MinerU 2.5-1.2B作为一款专为…

作者头像 李华