CTT2022总结DAY2

时间安排#

8.30~9.00#

看完题,T1是博弈,后两题是数据结构,T2一看就是lxl题。

前两题没什么思路,先看T3.

因为题面的BFS序性质良好,考虑用直接维护BFS序列。

这样轮换可以直接把最后一个数放在开头,用了一个平衡树维护。

这样,链可以直接做,完全二叉树因为树高所以也可以按层暴力做,一共有50分。

然后感觉BFS序没有什么更多的性质,想了想DFS序。

有一个猜想是原序列和轮换后的dfs序的LCS很大,这样也可以暴力做,但是写了个程序之后发现并不是。

叶子个数很小不知道怎么用,如果可以用的话那么对层数和叶子数根号分支就可以过了,保险起见先把50分写了。

9.00~10.00#

很久没写写平衡树调了很久。

10.00~10.30#

看T2,随机感觉暴力做是对的,但是并不知道怎么做。

感觉可以把点按照x+y排序,说不定能过,写完发现T炸了

10.30~11.00#

想了想T1的第二档,发现如果某个局面下有黑点或白点一定会直接删掉,因此最终比的就是谁的非叶子节点数比较多。

会了一个n^2的dp,但是没分。

11.00~12.00#

写了T2第三档的树套树,被卡空间了,MLE很难受。

12.00~13.00#

感觉T2第二档分块一下也可以做,结果也T了。

13.00~13.20#

写了T1的状压暴力

题目简述#

T1#

给出一棵有根树,每个点有颜色0/1,两人轮流删数,每个时刻都要保证删除的点是一个包含根的连通块,删除的最后一个点是0则Alice赢否则Bob,问谁会赢

T2#

有n个点,若干次操作:
1.把x<=X,y<=Y的点的y改成Y
2.把x<=X,y<=Y的点的x改成X
3.查询x<=X,y<=Y的点数
n:1e6

T3#

一棵树,m次操作
1.子树加
2.对于所有i,把i的点权送给i%n+1.

问最后每个人的点权。

总结#

数据结构浓度过重。

T1#

没有想到把黑白相等的子树看奇偶性讨论,不然感觉也很好写。
正解是把这个做法从下向上做:
若i的子树内黑色多,i的颜色是黑色。
若i的子树内白色多,i的颜色是白色。
否则看点数,如果最后一步是BOB,就是白色,否则是黑色。
证明可以归纳。

T2#

所有修改形成了一个轮廓线,然后可以用数据结构维护水平和数值,修改均摊是O(1)的。

查询时用总的减去四周的,右上方的点没有变,上方和右方的点的未修改的地方可以分类讨论求出,否则可以用轮廓线上的区间和得到。

T3#

考试时没有想到怎么用叶子深度相等的条件,可以发现按照每一层的节点数单调不降,那么可以划分为根号的段,每段是一个矩形,修改的时候可以用一个二维差分,轮换过后依旧是一个矩形。
然后就没了。

posted @   Larunatrecy  阅读(162)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
主题色彩