zoukankan      html  css  js  c++  java
  • Codeforces Round #706 (Div. 2) 题解

    Codeforces Round #706 (Div. 2) 题解


    题目链接


    A. Split it!


    大模拟,耐下心看懂题意。


    B. Max and Mex


    不难观察到:当(mex(S)<max(S))的时候最多只可能只增加一个“新数”。

    这是因为:(⌈dfrac{a+b}{2}⌉geq dfrac{a+b}{2}>a),因此,在这种情况下新增的元素一定不是(mex(S))。因而,无论操作多少次,新增的元素值不变。

    如果(mex(S)>max(S)),不难想到,(a=b+1)。这个时候,每操作一次,都会增加一个新的元素,故这种情况下答案为(|S|+k)

    综上,我们可以将所有元素塞进一个(STL set)。判断一下即可。


    C. Diamond Miner


    还有这么水的第三题。

    首先,考虑到当“矿工”在数轴的负方向位置时,按照勾股定理,他与将横纵坐标取绝对值后的位置是“等效”。这里面“等效”指的是与其他“矿井”距离没有发生改变。

    基于这个原则,我们可以对所有的坐标取绝对值(不会影响结果)。接下来,对其中一组排序后,我们考虑贪心:

    考虑存在这样一个最优的“匹配方案序列”(p),让(i)号矿井与(p_i)号人匹配。那么我们微扰

    [sqrt{x_i^2+y_{p_i}^2}+sqrt{x_{i+1}^2+y_{p_{i+1}}^2} ]

    这个是在该排列下的相邻两个数的代价。邻项交换:

    [sqrt{x_i^2+y_{p_{i+1}}^2}+sqrt{x_{i+1}^2+y_{p_i}^2} ]

    由于我们是最优的匹配方案,所以有:

    [sqrt{x_i^2+y_{p_i}^2}+sqrt{x_{i+1}^2+y_{p_{i+1}}^2}leq sqrt{x_i^2+y_{p_{i+1}}^2}+sqrt{x_{i+1}^2+y_{p_i}^2} ]

    两式平方,移项,再变形得:

    [(x_{i+1}-x_i) imes(y_{p_{i+1}}-y_{p_i})geq0 ]

    (x_{i+1}-x_igeq0),所以只需要满足(y_{p_{i+1}}-y_{p_i})。这个式子告诉我们最优的一定是正序和

    因此,我们只需要对这两组分别进行从小到大排序,配对即可了。


    D. Let's Go Hiking


    这道题也很水,细节比较多。

    首先,对于第一个人而言,他想要赢只能一开始在“山顶”(这里面“山顶”“山谷”分别指序列中局部极大值、极小值)。

    容易发现,所有山顶“下(上)坡路”中的最大值,如果有三条及以上“下(上)坡路”取最大值,那么一定无解。这是因为如果第一个人选择一条“下(上)坡路”的“山顶”,那么第二个人只需要选择另一条“上坡路”的位置即可弄死第一个人。

    接下来,如果只有两条最大“下(上)坡路”,那么讨论一下:

    • 若两条路径没有共山顶点,那么无解;
    • 若共山顶点,那么路径长度为奇数的有解,否则无解。

    只有一条的话,若最长路径在序列的左右两端,则判断一下,若长度奇数有解。其余情况一概无解。


    E. Garden of the Sun


    神构造:考虑一张地图,我们将所有(1)(4)(7)(cdots)列的草坪全部开掉,相邻的判断一下是否联通,最后两列判断一下是否需要特殊处理(也就(n=3k)时需要)。

  • 相关阅读:
    java如何导入Excel文件
    C/S框架设计经验小结
    WebClient以POST方式发送Web请求
    如何自动拼接 Update语句,仅Update已修改的字段
    DataGridView如何快速导出Excel
    【转】基于STM32F103内部AD测量电池电压
    【转】stm8 rtc时钟
    【转】NiOS II从EPCQ256的自启动设置
    【转】验收代码寄存器和验收屏蔽寄存器
    【转】eclipse : Type Symbol 'xxx' could not be resolved 解决办法
  • 原文地址:https://www.cnblogs.com/zach20040914/p/14531677.html
Copyright © 2011-2022 走看看