• Codeforces Round #378 (Div. 2) C D


    在实验室通宵 一边做水题一边准备随时躲起来以免被门卫大爷巡查发现..结果居然没来..

    本来以为可以加几分变个颜色..结果挂了CD...状态有点差...思维不太活跃 沉迷暴力不能自拔

    D 给出n个长方体 两个长方体 如果有一面完全相同 可以粘上变成一个 在一个长方体中可以切割出一个球体 选择1或2个长方体以得到最大的球体 输出选择的编号

    一开始没看范围打了一个n^2的暴力 超时后相出了map配On的算法 由于比较暴力的判断 写了六个复制粘贴..漫长的debug之后过了pretest之后还是wa在了27

    其实比赛的时候 学长过来看了一眼就想出来了n的贪心..但是那时候想自己上一把紫233333...于是可爱的fst了...

    正解 : 因为 能够切割出来的球体的r 取决于长方形中最小的一个边 如果要进行粘贴 肯定要使最小的边得到延长

    所以先排序 把xyz从大到小排 再整体排序 这样 如果存在可以粘贴后可能获得更大球的两个长方体 他们肯定是相邻的(x y 都相等 我们需要把最小的z延长)

    扫一遍序列 判断相邻的两个长方体能否粘贴 更新答案 

    C 给出n个数 相邻的两个数如果严格大小不同 大的可以吞掉小的 值相加 给出m个数 如果这m个数是不断吞噬到剩m个数之后的情况 能否给出一个吞噬的序列 

    虽然看了一眼n的范围就知道是暴力了 而且敲完D之后 等了一会C就过了一千多..于是自己也打了一个 还配了路径压缩 .. 一遍绝杀结果fst在了26... 赛后发现路径压缩姿势不对..不能压..

    正解 : 首先快速排斥 判断能否变成给的序列 即 如果吞噬后的序列的第一个数是5 那么原序列的前几个连续数一定是5 这样严丝合缝的卡上去 然后让这些组成5的连续数进行内部的组合 记录ans

    由于吞噬的条件是严格大于 每次我们都需要扫一遍这些连续数 找寻一个数 进行左右寻找(这时候是可以暴力扫来寻找的)左右的第一个相邻并且小于的 

    因为两个小的加起来可能就等于大的 导致崩溃 但其实让大的连续吞噬是可行的 那么每次暴力找寻最大的那些数 来依次进行暴力判断就好了...

    以后又要陪桃桃打好久的div2了呢...

  • 相关阅读:
    第十二章 满城搜索 [转载]
    第十三章 平安是福
    第三十章 就是他!
    CyberArticle和Live Writer的比较
    NET CMS 大全
    第十五章 禹皇门,震动!
    第六篇 匹马行天下 第二十三章 血流成河,悟!
    第二十八章 震天怒吼
    今天终于找了一个代理登陆了传说中的三个网站
    第十六章 夜深人静
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/6020894.html
Copyright © 2020-2023  润新知