20241217北京总结
总结
模拟赛
\(A\) 手玩了两个小时 , 玩到 \(3\) 和 \(4\) 的的时候发现答案只和 \(1 , 2\) 的数量有关
感性理解一下 \(1\) 的作用 , 就是让轮次往后拖一轮 , \(so\) 我们完全就不用关心 \(1\) , 只关心 \(1\) 个数膜三的值有关 , 决定了谁是先手
\(2\) 的作用就是让 \(Bob\) 没办法只往后推 \(1\) ,稍微感性理解一下就看出正解了
但是 , 我们这题有更 \(ez\) 的方法 ,观察大样例就看出来了 \(/kk\)
\(B\) 场上开题的时候觉得是树链剖分上维护一个矩阵去 \(dp\) , 事实证明还是树上信息维护做少了 \(/kk\)
一个重要的想法 , 想到把一条链拆成两段 , 自然而然地想到了到根的差分 , 也就是剪掉一些 \(x->y\) 维护了一半 \(y->root\) 维护了一半的信息
场上这道题写了 \(40\) 分的暴力跑链+暴力 \(dp\) , 感觉是大众分
\(C\) 我是真的不会分治 , 或是启发式的东西 , 暂且搁置 , 场上 \(dp40\)分
\(D\) 一眼根号分支 , 原问题的贪心过程好比排序后把 \(1,2,3...\) 等权下放到每个任务下
\(k\leq \sqrt{n}\) 跳\(mod\) \(k\)的链 ; \(k\geq \sqrt{n}\) 暴力做
都用平衡树维护一下就行
具体怎么做到 \(AC\) , 离线后神秘分块
场上本来应该有 \(20\) 分的 , 没想到大样例有点弱 ,还是应该多对拍
性质题多打表
今天下午看了一些扫描线 , 讲讲理解
扫描线
对于一个静态的二维问题,我们可以使用扫描线扫一维,数据结构维护另一维。 在扫描线从左到右扫的过程中,会在数据结构维护的那一维上产生一些修改与查询。 如果查询的信息可差分的话直接使用差分,否则需要使用分治。差分一般用树状数组和线段树维护,但因为树状数组好写而且常数小,所以大部分人会选择用树状数组来维护。
这是oiwiki的原话 , 我们来理解一下扫描线都干了些什么
有些问题的维度是很高的 , 什么是维度 : \(B\) 维正交范围指在一个 \(B\) 维直角坐标系下,第 \(i\) 维坐标在一个整数范围 \([l_i,r_i]\) 间,内部的点集。
具体的 , 二维数点就是一个 \(4side\) 信息 , 这种一般直接不可做 , 我们可以通过差分压一个 \(side\) 即把查 \([l,r]\) 变为 \([1,r]-[1,l]\)
再看这个 \(3side\) 信息 , 我们直接上扫描线 , 就只剩下 \(2side\) ,我们发现这是区间操作 , 就可以上线段树树状数组或 \(cdq\) 分治了

浙公网安备 33010602011771号