「考试反思」2020-10-28 莫得

orz G_keng 给的题!

辣鸡(ljh)

对矩形排序,不难证明交线数量是 (O(n)) 数量级的

那么每次 (lower_bound) 找有交线的矩形维护即可


以下均为考后刷题

模板(ac)

线段树按照 时间 开,存颜色和数量,统计的时候

这样子最后统计的时候就直接在树的前 (k_i) 个点算就行

修改对着当前点改就行了

1.怎么修改的时候判重

整个线段树合并做,然后维护最早出现时间

2.修改的时间也要改

跟着上面的做就行了

复兴了线段树合并

超级树

(f_{i,j})(i) 级超级树,(j) 条路径互不相交的方案数,这里的路径如果方向不一样也算不同的方案,比如 (1 o 2 eq 2 o 1)

转移分为以下:

((1) f_{i+1,j+k}+=f_{i,j} imes f_{i,k}) 从左边选择 (j) 条,右边选择 (k) 条,不进行更新


((2) f_{i+1,j+k-1}+=f_{i,j} imes f_{i,k} imes 2 imes j imes k) 合并路径


((3) f_{i+1,j+k}+=f_{i,j} imes f_{i,k} imes 2 imes(j+k)) 起点或者终点连到根上面

因为想咋走就可以随便从上面走下来或者走上去


((4) f_{i+1,k+j-1}+=f_{i,j} imes f_{i,k} imes (j imes (j-1)+(k-1) imes k)) 直接在子树里面走


$(5) f_ {i+1,j+k+1}+=f_{i,j} imes f_{i,k} $ 添加多出来的根节点

这个部分真的很容易漏掉!!

计数注意:增量的添加

初始状态 (f_{1,0}=f_{1,1}=1,ans=f_{n,1})


一些卡常:

减半优化,最值优化

(C++11) 优化,(O2) 优化

这题目中 (k) 很小,那么可以考虑分段取模,比如 (modge 4e5)(modle 4e5) 两种情况

原文地址:https://www.cnblogs.com/yspm/p/13898606.html