一开始感觉用莫队可以搞一下,但是看了题解才发现这题其实是倍增套路题 把排列转换成nxt数组,然后倍增dp[i][j]表示第i个数后面有(1<<j)个数的最靠左的区间 然后从右往左扫一次即可 ...
分类:
其他好文 时间:
2019-04-01 21:21:39
阅读次数:
197
养老金 养老金也称退休金、退休费,是一种最主要的社会养老保险待遇。即国家有关文件规定:在劳动者年老或丧失劳动能力后,根据他们对社会所作的贡献和所具备的享受养老保险资格或退休条件,按月或一次性以货币形式支付的保险待遇,是造福社会的需要,主要用于保障职工退休后的基本生活需要。养老金本着国家、集体、个人共 ...
分类:
其他好文 时间:
2019-03-30 18:35:29
阅读次数:
176
给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 (qwq) 1.暴搜 即往树根一步一步搜。。。当然这样会妥妥T到飞起( 2.倍增求LCA 倍增即按照以2为底的幂来增大(啥) 2,4,8,16,32…… ~~(手证正确性差评)~~ 两次把1写成i……该注意了 cpp include incl ...
分类:
其他好文 时间:
2019-03-29 13:20:10
阅读次数:
170
刚开始, 我以为两个点肯定是通过树上最短路径过去的, 无非是在两棵树之间来回切换, 这个可以用倍增 + dp 去维护它。 但是后来又发现, 它可以不通过树上最短路径过去, 我们考虑这样一种情况, 起点在奇树里面, 终点在偶树里面, 然后这两个点最短路径里面点到对应点的距离都很大, 这种情况下我们就需 ...
分类:
其他好文 时间:
2019-03-27 12:32:10
阅读次数:
160
一般来求LCA有3种方法 1.倍增 2.RMQ+欧拉序 3.tarjan(离线) 本文将倍增求lca 这个算法是很常见很常见的 也是较好理解的 (我也不明白假期学长讲的时候我为什么死活都不明白 自闭qwq 对不起学长qwq 明明学长讲的是最好的qwq 想学长了qwq) 一、基础概念 LCA定义: L ...
分类:
其他好文 时间:
2019-03-26 01:29:18
阅读次数:
483
POJ上的题,其实就是LCA板子。先预处理每个点倍增祖先,然后每组询问先使x和y达到同一深度,然后一起往上跳到公共祖先的+1深度的点。 die码: ...
分类:
其他好文 时间:
2019-03-22 19:06:28
阅读次数:
119
紧急集合 / 聚会 题目大意: 给出一个无向图,每一次给出图中的三个点,求离三个点距离之和最小的点。 解决方法: 倍增LCA。 首先我们两两点之间求出LCA,那么离他们距离之和最近的点就是三个点中深度最深的点,想一想为什么? 我们假设存在一个点离三个点距离之和更近且深度更浅,那么我们将它的深度往下走 ...
分类:
其他好文 时间:
2019-03-22 18:45:37
阅读次数:
115
来一发$LCT$求$LCA$ $LCT$在时间上不占据优势,码量似乎还比树剖,倍增,$Tarjan$大~~一点~~ 但是却是一道$LCT$的练手题 对于每一个询问,我们只需要把其中一个点(我们设为a)先$access$,这样a到根节点的路径就都在一棵$Splay$里面了 而且不难发现,有一个很妙的性 ...
分类:
其他好文 时间:
2019-03-22 10:32:54
阅读次数:
142
#include #include using namespace std; const int maxn=1e5+10; int a[maxn]; int st[maxn][50]; int ST[maxn][50]; int quick(int a,int n) { int ans=1; whi... ...
分类:
其他好文 时间:
2019-03-21 20:03:59
阅读次数:
146
"洛咕" 题意:A国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物? 分析:显然限重就是边权.构建出图的最大生成树,然后树上每个节点dfs预处理出f[v][0]和dis ...
分类:
其他好文 时间:
2019-03-16 16:46:03
阅读次数:
192