2022.9.13 模拟赛+P5524+CF1726G

模拟赛记录:link

早上遗憾睡着,根本没有想题。😅

T1:树上主席树板子题,对 A 建树上主席树,下标存 A 中点在 B 中的 dfs 序。主席树区间 chkmax 单点查。

T2:类欧几里得板子。就是说首先发现结论 \([A+Bi,A+Ci]\) 中有 \(D\) 有无倍数等于 \(\frac{A+Ci}{D}-\frac{A+Bi}{D}=1\),直接类欧几里得。

(今天才学😅)

T3:有趣的计数题。首先抽象成折线问题,当前的状态 \((x,y)\) 表示机器人向左移动最多为 \(x\),向右 \(y\)。认为一个机器人达到满足条件的左右移动距离构成点 \((a,b)\) ,两条折线不同当且仅当存在一个点被越过的方向不同。

由于折线的方向单调向右上,那我们的折线计数相当于选出一条由机器人点构成的单调轮廓线,把整个平面分成两半的方案数。

二位偏序的 dp 问题,直接树状数组优化做即可。

做题记录:

只做了两道题啊,晚上大家都在摆🤯,明明我中午就改完题了的。

P5524 [Ynoi2012] NOIP2015 充满了希望

很烦的一道题,磨了近 1h 才想出来。

就是说形式上非常像这道题,类似的,我们要维护颜色段信息,用数据结构存放贡献及生效时间,并且扫描线。

那么一个位置它的贡献是由查询前最后一次修改决定的,我们扫描线 \(r\) ,线段树维护出此时每个节点的信息 \((w,t)\) ,权值和修改时间戳。

交换的话仔细分析好像如果后面没有再次修改,直接交换节点信息也没什么影响。有修改的话又会抹平之前的影响,总而言之可以直接交换。(这里糊了好久🤢)

修改直接修改。遇到查询的话,就把查询点的权值 \(w\) 按照 \(t\) 加入进树状数组对应位置。区间操作询问时直接查出后缀和即可。

CF1726G A Certain Magical Party

没什么意思的题。

观察到我们序列的最终情况是已经知道了的,考察最小值,发现它只能变成 \(a+n-1\),所以最后都是这个数。

可以意识到操作序列其实很固定。然后我们分别找 0 类点和 1 类点的当前可删点。比较数值大小可发现现在只能删掉其中一个。模拟下去就好了。

计数也很简单,元素选取的合法性只取决于 \((a,b)\),我们每次乘上选取二元组的出现次数的阶乘就好。

posted @ 2022-09-13 23:45  陈刀仔  阅读(72)  评论(0编辑  收藏  举报