摘要: 用途 我想把一个本来是线性的东西放到树上做,维护路径或者是子树的各种性质,那就用树剖呗 它可以套线段树、树状数组、ST表(以及其他我不知道的) 做法 我们考虑把树分成一条条链,然后对每条链维护我们的数据结构(线段树等)。对于两点间路径的询问,只要把路径拆成好几条链统计答案就可以了 然后为了保证链数是 阅读全文
posted @ 2018-08-01 22:22 Ressed 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个1~N的排列,然后让你按顺序把它们插到一个二叉搜索树里,然后问能插出同样的二叉搜索树的 字典序最小的排列是什么 本来可以直接模拟建树然后dfs一下输出结果...然而有可能会退化成链,最差复杂度是O($n^2$) 然后貌似这题可以用笛卡尔树,先对输入排序然后实现O(n)建树..但我不会 阅读全文
posted @ 2018-08-01 10:49 Ressed 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 貌似这道题是碰巧蒙对了贪心的方式..就是把ai*bi越小的放在越前面 (不过也符合直觉) 然后统计答案需要用高精度,然后就调了一年 阅读全文
posted @ 2018-07-31 10:40 Ressed 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 把一个n位数看做n-1次的多项式,每一项的系数是反过来的每一位最后每一项系数进进位搞一搞就行了(数组一定要开到2的次数..要不然极端数据会RE) 阅读全文
posted @ 2018-07-27 12:56 Ressed 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意:有n行路,每行路被分成m段,每一段有长度和权值,要求从最下面一行走到最上面一行某个位置,可以从相邻两行的同一列交点往上走,并且在同一行走的长度要<=K,求走过的最大权值 设f[i][j]为到第i行,第j个交点的最大值设sumvalue[i][j,k]为第i行从第j个交点到第k个交点经过道路的权 阅读全文
posted @ 2018-07-27 12:54 Ressed 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个长度为L的线段,把它分成一些份,其中每份的长度∈[2A,2B]且为偶数,而且不能在某一些区间内部切开,求最小要分成几份 设f[i]为在i处切一刀,前面的满足要求的最小份数,则f[L]为答案 f[i]=min(f[j])+1,2A<=i-j<=2B,i,j可以切维护一个单调队列,每次取出来 阅读全文
posted @ 2018-07-27 12:24 Ressed 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 逆元定义:若a*x=1(mod p),(a,p互质),则x为a mod p意义下的逆元 做法见https://www.luogu.org/blog/zjp-shadow/cheng-fa-ni-yuan 阅读全文
posted @ 2018-07-24 21:14 Ressed 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个数列,维护两个操作,区间开根号、询问区间和 注意到1e12开根号六次后就变成1,而且根号1等于1 也就是说,就算我们用单点修改,只要跳过1,那么修改的次数最多也就是6n 那么维护一个区间最大值,如果最大值<=1就直接跳过这个区间,剩下的单点修改即可 阅读全文
posted @ 2018-07-24 20:01 Ressed 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意:给一张无向联通图,每条边有长度和高度,每次询问在高度大于p的边,从v点能到达的所有点到1号点的最短距离(强制在线) 首先dijkstra求出每个点到1号点的距离 易知:如果我按高度从高到低给边排序然后用kruskal的方法做出一棵生成树,那么在高度大于p的条件下,在原图中联通的两点在生成树中依 阅读全文
posted @ 2018-07-24 12:44 Ressed 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 最大流板子题。 对于每根柱子,建两个点ai,bi,建边(ai,bi,柱子高度) 对于距离不超过d的两根柱子i,j,建边(bi,aj,inf) 对于起始位置在i的每个蜥蜴,建边(S,ai,1) 对于能跳出地图的柱子i,建边(bi,E,inf) 然后跑dinic即可 阅读全文
posted @ 2018-07-23 14:11 Ressed 阅读(145) 评论(0) 推荐(0) 编辑