当前位置: 首页 > news >正文

P13518 [KOI 2025 #2] 镜子

解题思路

核心观察:每次使用镜子相当于进行一次对称变换,位置从 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.gsyq.cn/news/30645.html

相关文章:

  • 使用Prodfiler优化eBPF编译器性能:从内存分配到向量化的全面调优
  • 详细介绍:JMeter接口测试
  • d40: vue杂项问题 - 详解
  • day04-Coze工作流案例(中草药识别-菜谱生成-智能换脸)
  • 实用指南:【Android之路】 Kotlin 的 data class、enum class、sealed interface
  • 【图像处理-基础知识】SFIT特征解析 - 教程
  • 2025年优质的造纸橡胶辊,天然橡胶辊品牌厂家排行榜
  • 软件神器 --- x64db插件 之 SharpOD
  • 2025年耐用的移动搅拌车,搅拌车优质厂家推荐榜单
  • 2025年口碑好的硅胶制品,密封硅胶制品厂家最新实力排行
  • 2025年优质的高速电吹风开关,电吹风开关厂家最新用户好评榜
  • 2025年比较好的冷拔无缝钢管,大口径无缝钢管热门厂家推荐榜单
  • 2025年知名的厚薄门通用缓冲铰链,任意扣缓冲铰链厂家实力及用户口碑排行榜
  • 2025年知名的变频器控制柜,ACU控制柜行业内知名厂家排行榜
  • 2025年热门的卧式明装风机盘管,立式暗装风机盘管厂家最新权威推荐排行榜
  • 2025年质量好的安全保护电器开关,感应电器开关厂家选购指南与推荐
  • 2025年比较好的防氧化铝合金线槽,耐腐蚀铝合金线槽厂家最新TOP排行榜
  • 2025年比较好的大型生产流延机,流延机厂家最新权威实力榜
  • 2025年知名的烤漆轻钢龙骨,隔墙轻钢龙骨厂家推荐及采购参考
  • 2025年比较好的有油空压机,无油空压机优质厂家推荐榜单
  • 如何阻止迅雷11自动升级
  • git 从远程仓库中拉取代码到本地,本地修改后提交到远程仓库
  • python数据分析方向
  • string 库常用函数
  • maths 库常用函数
  • [网络] [TOOL] nload: Linux下的轻量网络监控工具
  • npuctf_2020_easyheap----off-by-one
  • HarfBuzz概览
  • [网络] [TCP] Linux TCP Socket 学习指南
  • 电脑频繁卡顿?4个CMD命令揪出后台隐藏进程