[SDOI2013] 森林(主席树+启发式合并)
摘要:传送门 description 给一个森林,每个点有权值。在线(每次每个变量xor lastans) 操作如下: Q x y k:查询x到y的路径上第k小的权值(保证x到y至少k个点) L x y:将x和y连边。 solution 从Q和L分别可以猜测需要用到主席树和lct。 主席树是我一直不太熟的
阅读全文
[KDTree]数列
摘要:NKOJ传送门 describtion 给你一个序列,每个序列有编号(它本身的位置),标识符,数值。 有4种操作 op=0:l,r,x,y将编号在[l,r]的数值x+y op=1:l,r,x,y将标识在[l,r]的数值x+y op=2:l,r将编号在[l,r]的数值和 op=3:l,r将标识在[l,
阅读全文
[NOI2019] 弹跳
摘要:传送门P5471 desciption 有
n个城市,所有城市在
w∗h的网格图上,不同城市坐标不同。 有
m个弹跳机,
i号弹跳机可以从城市
pi到
li≤x≤ri,
di≤y≤ui的城市 问从城市1出发到所有点的最短路。 solution kd
阅读全文
[SDOI2014] 数数
摘要:题意:问有多少个<=n(
101201)的数满足下面所给的模式串没有在其中出现过 思路:首先一堆串没在构造的串中,套路就是AC自动机上dp,不经过cnt[]>0的点。 不过<=n怎么做呢?从n范围容易想到数位dp。 不过有一种更巧妙的方法: 首先位数<n,每位没有限制 (类似康托展开:每
阅读全文
【LNOI2014】LCA
摘要:题意 有一个很巧妙的转化:求x,y的dep[lca(x,y)]可以先x到根的路径上加1,然后查询y到根路径上的和。 所以x->[l,r]的lca和,可以转化为,先把[l,r]中每个到根的路径+1,再求一次x到根的前缀和。 然后[l,r]这种显然可以差分为两个询问[1..r]和[1..l-1],因此先
阅读全文
[CF938G]Shortest Path Queries
摘要:题意:在标准的求异或最短路的基础上,添加加边删边类的修改操作 思路:离线对操作按时间顺序线段树分治。 其实很好想。加一个维护到根异或和的带权可撤销并查集。 想说的是调代码的问题啦。 我调了一个上午+一个下午原因竟然是因为排序以为(x,y,t)不同,两个操作就不同了,本身大部分情况是这样的。但是自己先
阅读全文
CF1625D - Binary Spiders[trie树优化dp]
摘要:官方题解 题意:给数列a[],选择尽量多的数满足任意两个异或起来<=k 1625D - Binary Spiders 思路:首先,将数列排序得到,然后升序取得的值的任意两个最小值为相邻两个异或的最小值。 证明:zxcv告诉我可以考虑在trie树上,dfs序等价于字典序,然后一个树与其lca最深(异或
阅读全文
[学习笔记]splay
摘要:奇怪的码长增加了 图示(方便理解rotate): 魔板 bool Type(int x) {return x==son[fa[x]][1];} void Update(int x) {size[x]=cnt[x]+size[son[x][0]]+size[son[x][1]];} void chan
阅读全文
P4169 [Violet]天使玩偶
摘要:两种操作:1.加入点(x,y); 2.查询距(x,y)最近的点的曼哈顿距离距离 思路:绝对值拆开通常可以取max,不过这里直接分类讨论4种情况,我们发现如果找
i点左下点
j(xj<=xi且yj<=yi)到
i的最小距离:\(x_i-x_j+y_i-y_j=(x_i+y_i)-(x
阅读全文