T1 小K与赞助
20pts
直接模拟题意,让球往下掉
100pts
本质:序列的切割和合并操作
每个小短棍的作用,交换两个数
情况一:奇数位置的数和偶数位置的数分别维护一个序列,直接交换两个序列
例如:1 2 3 4 5 6 变为
情况二:除了开头和结尾中间的偶数位置的数和奇数位置的数分别维护一个序列
例如 1 2 3 4 5 6 变为 1 3 2 5 4 6
有删除,在以上基础上删除(对于每个撤掉木棍的情况,交换两边的位置)
法1:用平衡树维护treap维护区间,复杂度 O ( n l o g n ) O(nlogn) O(nlogn)
法2:两个数组维护
法3: 找到第一个边界位置,复杂度 O ( l o g n ) O(logn) O(logn)
来自大佬的考场策略 (虽然难以实践qwq):
1.看题,思考 15min;
2. 写treap 15分钟写完 ;
3.调试 共用45分钟
T2 画画
30pts
变成两个人从左上向右下走路,暴搜。
100pts
贪心
考虑两个人从左上往右下移动
一个人能往下走就往下走,另一个人能往右走就往右走,直到当前列/行的数选完。
因为不能往左或往上走,如果这一列没有选完,到了下一列,永远也选不完这一列的位置了。
T3 交易
暴力
枚举每一个点,dfs一遍吧它的信息推到所有点上
100pts
注意到一条边断开之前,整个连通块内信息都是完全相同
的。 而由于是一棵树,这条边重新连上之前,两边的信息都得不
到沟通。
设一个点某时刻信息数是 valx,在一条边断开时记录一下此
时连通块内信息种数 tmp = valx,重新连上时,把整个连通块都
赋成 valx + valy tmp 就行了。
用 LCT 维护,连通块的信息维护在根节点处即可。
今日总结
来自R爷考试经验:
1.认真读题,每个题多读几遍,确保题意理解对了
2.每个题都要看一遍,不要在一道题上浪费太多时间,有些题目不一定是难度排序,而是你擅长什么。
3.不一定要死磕正解,有时候暴力打好了出奇迹
感受
今天拿了50分暴力分真是感动,rating值一直掉得惨不忍睹后,终于涨了那么一点点 开森(/≧▽≦)/
然后今天的题感觉还是蛮有思维程度上的收获(因为一二题都是智力题orz),然后列了一个清单:
待深入学习的知识
1.bitset
2.点分治(复习)
3.splay
4.LCT动态树