zoukankan      html  css  js  c++  java
  • 考试总结 模拟$103$

    考试过程

    没想到啊,早应该记住这个毒瘤出题人的名字的

    刚开始状态还是挺好的,T1看了好久,有了一个比较模糊的思路

    打表证伪,只打了暴力

    然后看T2发现暴力很不好打,1h多才发现自己eoo读错题了,只是临位交换

    还是没思路就去看T3,读完题发现样例没模过,考试进行了2h多了,正是及其混乱的时候

    读不懂T3心态更是爆炸,只好出去溜了一圈,可算是有了活下去的勇气

    接着写了T2的hash暴力然后又看T3可算看懂了,紧张地写暴力

    现在要提升的还是要在每一场考试的中间,保持冷静!

    题解

    T2「贪心」「树状数组」

    首先我们会发现,k一定是最大值,并且整个序列的最小值一定在最左端或最右端

    我们考虑将它一步一步地移动到一端,相当与是走过的点都向反方向移动一位,并且贡献不会变

    所以我们只需要找到左右两端最小的那个移动过去就好

    那么处理完这个最小值之后,就又变成了一个子问题,

    所以我们处理的顺序就是每次找到一个最小值,将它移动到左/右端

    注意出现了多个最小值的情况,我们要移动的是当前的贡献最小的那个

    即在所有相同的值中离两端最近的那个,否则的话,可能会出现,一个点与自己等高的多交换了一次

    复杂度$O(n^2)$

    我们再考虑一下对于每次移动,一定是最小值和比自己大的交换,而这些比它高的个数就是原序列中的从这个点到某一端,比它高的个数

    树状数组处理就好了

  • 相关阅读:
    《鸟哥的私房菜阅读摘要》——linux的简介和计算机基础
    抽象类可以有构造函数吗
    Java对象及对象引用变量
    html5的学习笔记
    xhtml的学习笔记
    交换机配置原理
    (转)MSI
    python xy
    Microsoft SilverLightt是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。
    epub使用Adobe Digital Editions打开
  • 原文地址:https://www.cnblogs.com/casun547/p/11808768.html
Copyright © 2011-2022 走看看