• 【暑假集训模拟DAY3】数据结构


    前言

    数据结构...原本以为都是树状数组线段树,单调队列,并查集(其实也有)往上堆,但是看题居然没感觉和数据结构有太大关系

    原本预计T1”秒切”,然而经过长达3h的思考后后面写了三个暴力(还因为常数大和 lj评测机挂了15pts)

    总分:70pts(直接垫底)

    题解

    T1forward

    链表写挂的只有我一个。说实话一开始还有点沾沾自喜,但是确实很久不写链表,到底挂了,主要是因为 lst 数组更新的时候忘记更新 lst[nxt[x]]=lst[x],lst[fir]=x这样的操作

    实际发现根本不用这么复杂,什么双端队列,什么反着输入操作,乱搞都能过

    这题挂了属实亏

    T2basket

    自古T2难度大

    想了很长时间各种的贪心,优先队列等等,最终打了爆搜

    正解的枚举有点神仙,而且最后的30分才需要线段树维护等等...

    T3manage

    想了很久并查集,建图的操作,但是始终思路跳不出去

    根本没想到正解:按照时间建边,倍增维护路径最大值,把询问离线处理

    这道题告诉我,在树上的倍增基本是dfs的时候处理一遍,不会有边加边边处理或者修改的情况

    我觉得不简单。。。

    不过这道题告诉我:离线处理询问有很大的好处!(而且要注意数组大小和下标不要越界...)

     T4square

    暴力显然很好想:枚举每个点二分,维护二维前缀和写二分的check函数

    正解:时间逆流操作,把放障碍物的操作变成把障碍物拿走的操作,如果有更大的矩阵那么一定经过改变的点,对于一行,枚举右端点 r ,用单调队列分别维护该行向上,向下的高度最小值,可以确定出左端点

  • 相关阅读:
    java反编译工具
    javascript
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
  • 原文地址:https://www.cnblogs.com/conprour/p/15130803.html
Copyright © 2020-2023  润新知