
CDQ分治
cdq分治
lushanlushan0026
退役acmer,准研究生
展开
-
CodeForces - 849E cdq分治
cdq分治的题 不过要先推出维度的关系 显然想要得出一种数的答案 我们需要知道这种数在区间里面出现的位置 最后的位置减去最前面的位置即可 但是我们无法很便捷的找到最后和最前的位置 却可以找出所有出现的位置 设 pre[i] 为i位置的数上一次出现的位置 对于每一个这样的对(i和pre[i]) 他们的贡献是 i-pre[i] 那么一种数对于整个区间的贡献就是 i<=R pre[i]>=L 的所有贡献和 三个维度分别是 时间,当前位置 i 和pre[i] 对于每一个询问...原创 2020-06-24 11:51:29 · 481 阅读 · 0 评论 -
2020 年 “游族杯” C.Coronavirus Battle 三维LIS
好菜啊 写个近乎板子的题写了个把小时 这题看题意就知道最后的答案是求 ans[i] 表示以i点结尾的最长lis的长度 数据是随机的大概率不会有重复的点 但是为了保险我还是去了一下重 z这一维由于要用树状数组 我就离散了一下 然后套cdq板子就行了 #include<bits/stdc++.h> using namespace std; const int N = 1e5+10; const int K = 1e5+10; typedef unsigned long long...原创 2020-05-23 17:19:18 · 284 阅读 · 0 评论 -
CodeForces - 1093E cdq分治 或 树套树
题意不说了 学了个新姿势:对于每个值 记录他们在a序列和b序列中的位置 假设我们以b的位置为x轴 a的位置为y轴 那么询问 就变成了 在 矩阵 左下角(lb,la) 右上角(rb,ra)内有几个点 显然是cdq裸题 关键在上述转换 树套树也是同样的思路 但是比cdq慢很多 cdq代码 #include<bits/stdc++.h> using...原创 2020-04-01 14:49:42 · 226 阅读 · 0 评论