近年省选数据结构乱做

前言

这是一篇用来记录近几年省选数据结构的文章,大致记录一些题目的关键点,其中好的/有代表性的会加入分享课件(没办法,谁叫我突然心血来潮想讲数据结构呢?)

是靠luogu标签划分的,肯定会有遗漏,如果你想推荐一些没有列举出来的题,欢迎推荐给我!

目前进度\(10/31\)

一、P4344 [SHOI2015]脑洞治疗仪

  • 维护区间连续0的最长长度(较复杂的pushup
  • 将区间前x个0改为1(普通线段树二分)
  • 实现过程:查询时没有pushdownWA了一发。

二、P3703 [SDOI2017]树点涂色

  • 感觉这题的重点不在数据结构,而在树上的处理。
  • 操作是对\(x\)到根的路径染一种没有用过的颜色,查询每个点到根有多少不同的颜色。
  • 可以直接重链上暴力将颜色段合并,因为每次操作最多会增加一个区间,均摊\(O(n)\)
  • 实现过程:没有想到一条链从重链中间连轻链等等细节,本地不知道调了多久

三、P3309 [SDOI2014]向量集

  • 强制在线的情况下,询问关于第\(l\)\(r\)个加入元素。

  • 对加入元素建立线段树,因为一旦某个区间元素满了,即si==r-l+1就可以离线处理。(因为询问要包含一个区间必须先要这个区间都加入了)

  • 这里还需要维护凸包,所以还考了离线之后维护凸包。

  • 实现时不记得二分在凸包上找最值的边界问题了。

    int mi=0,ma=tr[p].size()-1,mid,ans=ma;
    while(mi<=ma){
    	mid=(mi+ma)>>1;
        //下凸包是>,上凸包是<
        //下取整的关系,找斜率要为mid和mid+1
    	if(getk(tr[p][o][mid],tr[p][o][mid+1])>k)ma=mid-1,ans=mid;
    	else mi=mid+1;
    }		
    
  • 如果你看到样例S=A从而在判断在线时为S=='A'你就会自闭半小时。

四、P4577 [FJOI2018]领导集团问题

  • 挺不错的一道题,就是题面像shi一样。
  • 需要维护前驱取max,线段树合并,单点查询,但是可以通过差分转化为前缀和查询,线段树二分修改。
  • 实现过程:开始没有把关系理顺,想了一阵,后面把大致思路想到了,看了题解之后明白了这么做了原理。

五、P3747 [六省联考 2017] 相逢是问候

  • 关于数学的线段树,做之前可以做一下P4139 上帝与集合的正确用法
  • 关键是对\(a_i\)不断做\(a_i\leftarrow c^{a_i}\)之后会不变,所以可以暴力更新。
  • 实现情况:自闭了,扩展欧拉定理太恶心了,你需要判断这个数是否大于mod!!!

六、P5226 [SCOI2015]小凸解密码

  • 比较常规,求解的时候需要想清楚需要维护什么,不然就会浪费时间。
  • 这里需要维护区间连续的非0的段数。
  • 实现情况:最开始没有想清楚,后面因为本题的边界情况\(b_0=a_0\)细节没有调好。

七、P5283 [十二省联考 2019] 异或粽子

  • 关于异或的题,发现自己SB了,为了满足后面只会选前面的特地建了可持久化,然而如果把\(k\times2\),就不需要管这个条件了...
  • 实现的时候知道了,可持久化是不能通过记录父亲而向上访问的,因为一个节点可能会有多个父亲。

八、P4559 [JSOI2018]列队

  • 主席树维护区间信息,线段树二分查找。
  • 实现的时候没有注意到需要判断分界点是哪个,又WA了一发。
  • 不要忘记\(\log 10^6\)不能只开20倍!!!!!!

九、P4216 [SCOI2015]情报传递

  • 简单题,基本的二维偏序+树上操作。
  • 貌似离线可以直接一个\(\log\),在线用主席树也可以两个\(\log\)

十、P4462 [CQOI2018]异或序列

  • 普通莫队题,刚开始加这个题的时候一下子没看出来。
  • 实现没有什么问题。
posted @ 2022-02-17 17:54  qwq_123  阅读(114)  评论(1编辑  收藏  举报