• 2018.10.23NOIP模拟赛解题报告


    心路历程

    预计得分:(100 + 50 + (10 sim 50))

    实际得分:(100 + 10 + 50)

    这可能是我打的最懵逼的一场考试没有之一。。

    T1两个小时才做出来也是醉了。

    T2讲过原题但是不会做其实只要改一个字符就能A了

    T3只会打套路暴力。。

    比赛开场看T1一点思路都没有,不管怎么想都是(O(n^2))的复杂度,做了好久终于发现自己傻逼了这就是个傻逼题。。

    开始做T2的时候慌的一批,因为旁边的大佬们都已经把暴力打完了。。T2没多想就写了50分(实际上已经无限接近正解了。)

    距离考试还有(30min)的时候才开T3,发现暴力单调栈可以拿(50)分,但是写起来特别恶心。不过万幸在考试结束前(2min)写出来了。但是大数据一拍就wa。。感觉自己药丸。不过最后不知道啥原因该得的分还是拿到了。

    出了成绩发现大家考的都不理想。T1、T2都有大佬fst了。

    然后我就win了???。。。。

    题解

    题目数据代码

    T1

    一道很zz的题目然而被我硬生生的做成了一道不可做题。。

    显然(x)(p)互质的话一定存在一个(y)满足条件,为了不重复统计需要特殊考虑一下(x = y)的情况

    T2

    非常迷的一道题

    cf547D. Mike and Fish(欧拉回路)

    T3

    这个就比较interesting了。。

    直接说正解吧

    按照cdq分治的思想来做,每次只考虑过(mid)的贡献

    对于(mid)左边的点,维护后缀(mn, mx),对于在(mid)右边的点,维护前缀(mn, mx)

    维护(p_1, p_2)分别表示在过(mid)的点中,比当前(mn[i])小的第一个元素 / 比(mx[i])大的第一个元素

    显然(p_1, p_2)具有单调性。

    这样需要统计的区间就被分成了三段(假设(p_1 < p_2))

    ((mid - p_1](p_1 - p_2](p_2, r))

    维护好(mn, mx, mn imes mx)的和。所有贡献都是可以算出来的,递归做即可

  • 相关阅读:
    撤销git reset
    vue diff,react diff算法
    了解下domparser方法
    css中的BFC和IFC
    浏览器输入URL后发生了什么
    几种图片滤镜算法代码实现(灰度、浮雕、二值、底片)
    python--记python输入多行
    chrome添加 postman扩展程序图文简介
    火狐浏览器插件--HttpRequester接口测试
    python爬虫--一次爬取小说的尝试
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/9839651.html
Copyright © 2020-2023  润新知