博客
关于我
Codeforces Round #616 (Div. 2) C - Mind Control(暴力枚举)
阅读量:387 次
发布时间:2019-03-05

本文共 440 字,大约阅读时间需要 1 分钟。

给定一个初始序列,每次操作只能拿序列的头元素和尾元素。现在作为第m个拿的,我可以控制k个人的选择。问题在于,在我控制了k个人的选择后,不论剩下的m-1-k个人如何选择,我最后选的数字都会大于一个数X,求X的最大值。

解决这个问题的思路如下:

  • 枚举可能性:我需要枚举我控制的人在头部和尾部各自拿的数量。假设我控制的人在头部拿了i个,尾部拿了j个。剩下的k-i个人在尾部拿了k-i个,剩下的m-1-k个人在头部拿了剩下的位置。

  • 计算剩余位置:剩下的头部位置数为n - (m - 1 - k) - (k - i)。剩下的尾部位置数为j。

  • 确定最后位置:最后一次操作时,头部的位置是a[i + j],尾部的位置是a[n - 1 - (剩下的尾部位置数)]。

  • 取最大值:对于每一种i和j的情况,取头部和尾部的最大值,这个值就是我能保证的最小值X。

  • 遍历所有情况:通过遍历所有可能的i和j,找到最大的X。

  • 通过上述步骤,可以确定X的最大值,确保无论其他人如何选择,最后一次操作的数字都大于X。

    转载地址:http://raewz.baihongyu.com/

    你可能感兴趣的文章
    OpenStack版本升级与故障排查实战
    查看>>
    Openstack的HA解决方案【替换原有的dashboard】
    查看>>
    OpenStack的基本概念与架构详解
    查看>>
    Openstack的视频学习
    查看>>
    OpenStack自动化安装部署实战(附OpenStack实验环境)
    查看>>
    openstack虚拟机迁移live-migration中libvirt配置
    查看>>
    OpenStack项目管理实战
    查看>>
    OpenStreetMap初探(一)——了解OpenStreetMap
    查看>>
    openSUSE 13.1 Milestone 2 发布
    查看>>
    openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
    查看>>
    OpenVP共用账号 一个账号多台电脑登录
    查看>>
    OpenVSwtich(OVS)Vlan间路由实战 附实验环境
    查看>>
    Openwrt LuCI模块练习详细步骤
    查看>>
    openwrt_git_pull命令提示merger冲突时如何解决?
    查看>>
    OpenWrt包管理软件opkg的使用(极路由)
    查看>>
    OpenWrt固件编译刷机完全总结
    查看>>
    Open××× for Linux搭建之二
    查看>>
    Open×××有线网络时使用正常,无线网络时使用报错的解决方案
    查看>>
    Opera Mobile Classic Emulator
    查看>>
    Operation not supported on read-only collection 的解决方法 - [Windows Phone开发技巧系列1]
    查看>>