摘要:
思路 :树剖模板,线段树维护即可。 阅读全文
摘要:
思路 :树剖模板,线段树维护即可。 阅读全文
摘要:
思路:边权转化到点权上,统一把每一条边的边权集中到深度较深的点上去。 阅读全文
摘要:
HDU - 3966 思路 :树链剖分就是可以把一个路径上的点映射成几段连续的区间上。这样对于连续的区间可以用线段树维护, 对于每一段连续的区间都可以通过top [ ]数组很快的找到这段连续区间的头。跳的过程类似于 lca ,但这里 要注意的是 每一个点只属于一条链。 (重载运算符时要注意 node 阅读全文
摘要:
思路 :按照操作的时间进行分治,这样转化成了 时间t ,x坐标,y坐标 经典的三维偏序。 最初时间就是递增顺序,无需排序直接进行第二维的分治,类似归并排序处理x坐标,在保证 x有序的情况下进行更新y坐标的树状数组。求一个 (x1,y1) - (x2,y2)矩形内点的个数,简单容斥一下 求[ (1,1 阅读全文
摘要:
HDU - 2476 思路:分解问题,先考虑从一个空串染色成 B串的最小花费 ,区间DP可以解决这个问题 具体的就是,当 str [ l ] = = str [ r ]时 dp [ L ] [ R ] = min (dp [ L + 1] [ R ],dp [ L ] [ R-1 ] ) 其他情况可 阅读全文
摘要:
GCD Counting 思路: 预处理 每个权值的素因子。问题转化为 以同一个素数作为因子 最长的链, 树形DP求解,ans 由 此点的 最长子链 + 次长子链 相加得到, 然后再更新最长子链 阅读全文
摘要:
UVALive - 8512 题意 :给出一个包含n个元素的数组A以及一个k,接下来进行q次询问,每次询问给出 l 和 r , 要你求出从A[l] , A[l+1] , A[l + 2],...,A[r]中任选出若干个数异或起来的值val,使得 k | val 最大,输出这个最大值。 思路 :既然是 阅读全文
摘要:
题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数 思路 :动态说的很到位。hiahia ... 最初一直没想明白为什么 大佬的cdq 中统计了两次。 先定义 给出的删除的点的 t 值依次是N,N-1,N-2...(越先删除的视为越后插入的) 注意不在询问范围内的点的t值可以任意设置, 阅读全文
摘要:
E - Andrew and Taxi 思路 :min max 明显二分答案,二分需要破坏的那些边的中机器人数量最多的那个。 check 过程建边时直接忽略掉小于 mid 的边,这样去检验有无环存在即可。 当时有一点担心会出现 有一个环 有一条边 反过来之后 这个环破坏了 却成就了 另一个环,但是画 阅读全文
摘要:
HDU - 1541 思路:二维偏序,一维排序,一维树状数组查询即可。 #include<bits/stdc++.h> using namespace std; #define maxn 33333 int ans[maxn],n,sum[maxn]; int lowbit(int x) { ret 阅读全文
|