P13518 [KOI 2025 #2] 镜子

news/2025/10/26 9:38:23/文章来源:https://www.cnblogs.com/jyssh/p/19166490

解题思路

核心观察:每次使用镜子相当于进行一次对称变换,位置从 a 变为 2b - a。经过数学推导可以发现,最终的终点位置可以表示为:

终点 = 2×(某些镜子的位置) - 2×(另一些镜子的位置) + ... + (-1)^N × 初始位置

关键规律:

  • 当镜子数量为偶数时,最终位置与初始位置的符号相同

  • 当镜子数量为奇数时,最终位置与初始位置的符号相反

  • 要最大化最终位置,需要让正系数的镜子位置尽可能大,负系数的镜子位置尽可能小

算法策略:

  1. n=1或2:直接模拟所有可能的顺序

  2. n为偶数且初始位置在两个中间镜子之间:采用交替左右跳跃的策略

  3. 其他情况:根据n的奇偶性决定起始跳跃方向,然后交替左右跳跃

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int N = 2e5 + 10,inf = 0x3f3f3f3f;
    ll n,k,a[N];  // n:镜子数量, k:初始位置, a:镜子位置数组
    ll ans;// 处理n=1或2的情况:直接模拟所有可能的顺序
    void solve1(){if(n == 1) k = 2 * a[1] - k;  // 只有一个镜子,直接对称if(n == 2) {// 两个镜子,按顺序1->2使用k = 2 * a[1] - k;k = 2 * a[2] - k;}
    }// 处理子任务2和3的情况:n为偶数且初始位置在两个中间镜子之间
    void solve2(){int L = 1,R = n,id = 1;  // L,R:左右指针, id:标识当前跳跃方向while(L <= R){if(id % 2 == 1) k = 2 * a[L] - k,L++;  // 奇数步:用左边镜子,向右跳if(id % 2 == 0) k = 2 * a[R] - k,R--;  // 偶数步:用右边镜子,向左跳id++;}
    }// 处理子任务4的情况:一般情况
    void solve4(){int L = 1,R = n,id;// 根据n的奇偶性决定起始跳跃方向if(n % 2 == 1) id = 0; // n为奇数:实现最开始往右跳if(n % 2 == 0) id = 1; // n为偶数:默认从左开始跳while(L <= R){if(id % 2 == 1) k = 2 * a[L] - k,L++;  // 用左边镜子if(id % 2 == 0) k = 2 * a[R] - k,R--;  // 用右边镜子id++;} 
    }int main()
    {cin >> n >> k;for(int i = 1; i <= n; i++) cin >> a[i];// 根据不同的情况选择相应的解法if(n == 1 || n == 2) solve1();  // 情况1:镜子数量少,直接模拟else if(n % 2 == 0 && a[n / 2] < k && k < a[n / 2 + 1]){ // 子任务2,3:偶数且初始位置在中间
            solve2();        }else{ // 子任务4:其他所有情况
            solve4();} cout << k << endl;  // 输出最终位置return 0;
    }

     

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

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

相关文章

Correlation inequality小记

定义\(n\)元函数\(f\)单调递增:如果对于所有 \(x,y\), 如果\(x_i\leq y_i\)对于\(i=1...n\)成立,那么\(f(x)\leq f(y)\)。 如果\(f,g\)单调递增,那么\(E(fg)\geq E(f)E(g)\)(\(f,g\)的定义域相同) 证明:考虑归纳…

实用指南:TimescaleDB 超表 物理表解释

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

使用Prodfiler优化eBPF编译器性能:从内存分配到向量化的全面调优

本文详细介绍了如何利用Prodfiler性能分析工具对eBPF优化编译器K2进行深度优化,通过替换内存分配器、优化数据结构、应用PGO和LTO等技术,最终实现1.4-1.9倍的性能提升。使用Prodfiler优化eBPF优化编译器 如何在不修改…

详细介绍:JMeter接口测试

详细介绍:JMeter接口测试pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

深入解析:GESP25年9月编程题解析

深入解析:GESP25年9月编程题解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

Anthropic Agent Skills 技术解析与实践

Anthropic Agent Skills 技术解析与实践2025-10-26 09:16 姜 萌@cnblogs 阅读(0) 评论(0) 收藏 举报前言 Anthropic 在 2025 年 10 月推出了 Agent Skills 框架,这是一个让通用 AI 获得专业技能的机制。本文通过分…

d40: vue杂项问题 - 详解

d40: vue杂项问题 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

day04-Coze工作流案例(中草药识别-菜谱生成-智能换脸)

今日内容coze的工作流---》coze智能体中:工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排 干一件时间的流程:第一步干什么,第二步干什么,最后干什么。。…

记力扣2271.毯子覆盖的最多白色砖块数 练习理解 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【Android之路】 Kotlin 的 data class、enum class、sealed interface

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

精通-Pandas-探索性分析-全-

精通 Pandas 探索性分析(全)原文:Mastering Exploratory Analysis with Pandas 协议:CC BY-NC-SA 4.0零、前言 在本书中,您将深入学习 Pandas,这是一个 Python 库,用于处理,转换和分析数据。 这是用于探索性数…

【图像处理-基础知识】SFIT特征解析 - 教程

【图像处理-基础知识】SFIT特征解析 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

深入解析:【FPGA+DSP系列】——(2)DSP最小核心板进行ADC采样实验(采集电位器输出电压)

深入解析:【FPGA+DSP系列】——(2)DSP最小核心板进行ADC采样实验(采集电位器输出电压)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

精通-HTML5-表单-全-

精通 HTML5 表单(全)原文:zh.annas-archive.org/md5/835835C6B2E78084A088423A2DB0B9BD 译者:飞龙 协议:CC BY-NC-SA 4.0前言 Web 浏览者可能永远不会了解应用程序的背景,比如 HTML5、CSS3、响应式网页设计或 PH…

ABC429F Shortest Path Query 题解

AtCoder 写在前面 赛时没想出来,赛后经过大神和题解点拨有点思路了。之前确实没咋遇见过多少线段树维护矩阵的题。那就写写题解当积累trick了吧。 题意 给出一张\(3 \times N\) 的矩阵,内含# . 两种字符。其中# 代表…

苏维埃日报08.高三生福音?大屏课表软件ClassIsland助你度过高三

\(1.\)什么是\(ClassIsland\)? \(ClassIsland\)是一款适用于班级多媒体屏幕的课表的信息显示工具,可以一目了然地显示各种信息。本应用的名字灵感源于\(iOS\)灵动岛(\(Dynamic\) \(Island\))功能。 \(2.\)如何下载…

创建平面设计网站-全-

创建平面设计网站(全)原文:zh.annas-archive.org/md5/76ED001744425FC67A6333D19F2CBD18 译者:飞龙 协议:CC BY-NC-SA 4.0前言 扁平设计是一种数字设计风格,近年来在网页和用户界面设计中成为最大的趋势之一。它…

2025年优质的造纸橡胶辊,天然橡胶辊品牌厂家排行榜

2025年优质的造纸橡胶辊、天然橡胶辊品牌厂家排行榜 在造纸、印刷、纺织、木业、光伏等行业中,橡胶辊的质量直接影响生产效率和产品品质。优质的橡胶辊需具备耐磨、耐高温、耐腐蚀等特性,同时要求精准的尺寸控制和稳…

软件神器 --- x64db插件 之 SharpOD

软件神器 --- x64db插件 之 SharpODhttps://www.unknowncheats.me/forum/d...=file&id=21224 下载解压后将SharpOD dp32位放置32位的x86dbg的32位目录plugin目录下,64位同理 重启软件打开插件

2025年耐用的移动搅拌车,搅拌车优质厂家推荐榜单

2025年耐用的移动搅拌车:搅拌车优质厂家推荐榜单 在建筑工程、道路施工和矿山作业等领域,移动搅拌车是不可或缺的重要设备。随着技术的进步,市场对搅拌车的耐用性、效率和智能化要求越来越高。2025年,选择一台高质…