zoukankan      html  css  js  c++  java
  • NOIP模拟 14

        垃圾成绩,一点都不稳定。

        如果把数组开小的分得到的话..总分还挺不错..

        那又能怪谁,都快NOIP了还犯这种傻逼错误

        nc哥是要阿卡的节奏..真是太强了

        某kyh也不知道偷了谁的rp,分高的一批

        wd从来很强..几乎就没失手过

        就我一个渣渣还是这么没前途555

        暴力的分不会拿555

        想到正解拿不到分555

        T1 旋转子段

          貌似思路和题解并不一样,但是复杂度没区别,还比题解好理解(并不是)

          n^2:一个数要回到自己位置,旋转中心一定

          用旋转中心的编号替代这个数的位置,不需旋转的数是他自己

          用另一个前缀和数组处理不需旋转的数,为了区间得到翻转的损失

          枚举每个旋转中心a+b,枚举翻转长度,碰到一个值等于a+b的位置就把计数器ans++

          再用ans减去区间的翻转损失来更新答案

          nlogn:发现答案只有在ans被更新时更优

          否则只是损失白白增大,答案不会更优

          所以对于每个翻转中心,用vector存下翻转中心为它的位置

          枚举位置,二分查找另一端,相减得到答案

          n:发现上述过程满足单调性

          枚举一边位置的时候,另一个端点一定单调变化

          比如左端点右移,右端点一定不右移。

          单调指针,每次端点移动判断一下另一个断点是否移动即可。

          vector里只有n个数,所以是O(n)。

      

      T2 走格子

          开了0.1倍数组减了40分

          要不然高分暴力就85分了啊!

          然后发现好像很接近正解了?

          就是少考虑了一点啊啊啊!

          一定要敢于想正解啊!你不是那么不行!

      T3 模拟退火柱状图

          学习了模拟退火,可以日爆此题数据,但是换一道题可能就A不掉了

          所以打了一遍正解

          发现对于一个点,它的花费是左边右边,分开计算,不同公式

          对于某一边呢,为了去掉要求枚举的绝对值,又分成大于小于两个值域

          这时候计算可以用数据结构维护了

          开两个树状数组处理该点左右两边,下标为权值的排名

          从左往右扫,一开始把所有点的右权值塞进来

          每到一个点,从右bit删掉右权值,给左bit增加左权值

          枚举最高点,三分高度,二分查找权值排名

          O(nlogklogn)

  • 相关阅读:
    OC中的字典
    OC中的那些String
    虚拟机资源共享
    虚拟机空间使用心得
    PEST和SWOT分析法
    Axure 的四种预览模式
    竞品分析:抖音VS快手
    第二章:行业与市场分析六步法
    第一章:互联网产品从0到1全流程解密(9-11)
    第一章:互联网产品从0到1全流程解密(5-8)
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11318929.html
Copyright © 2011-2022 走看看