
倍增
文章平均质量分 80
even_bao
这个作者很懒,什么都没留下…
展开
-
【USACO】 Max Flow
【题目链接】 点击打开链接【算法】 LCA + 树上差分【代码】 #include<bits/stdc++.h>using namespace std;int i,x,y,N,K,l,maxn;int anc[50010][50],d[50010],sum[50010];vector<int> E[50010];v...原创 2018-02-14 14:59:35 · 272 阅读 · 0 评论 -
【USACO】 Balanced Lineup
【题目链接】 点击打开链接【算法】 这是一道经典的最值查询(RMQ)问题。 我们首先想到线段树。但有没有更快的方法呢?对于这类问题,我们可以用ST表(稀疏表)算法求解。 稀疏表算法。其实也是一种动态规划的算法。是先做一遍预处理,然后O(1)求出答案。 设计状态 : f[i][j] 表示从第i个数开始连续2^j...原创 2018-02-14 15:54:26 · 234 阅读 · 0 评论 -
【POJ 1330】 Nearest Common Ancestors
【题目链接】 点击打开链接【算法】 倍增法求最近公共祖先【代码】 #include <algorithm>#include <bitset>#include <cctype>#include <cerrno>#include <clocale>#include <cmat...原创 2018-05-26 11:25:09 · 156 阅读 · 0 评论 -
【BJOI 2018】 求和
【题目链接】 点击打开链接【算法】 预处理i^k的前缀和,对于每次询问,树上倍增即可 时间复杂度 : O(nk + mlog(n))【代码】 #include<bits/stdc++.h>using namespace std;#define MAXK 55#define MAXN 300010#de...原创 2018-06-04 22:19:18 · 269 阅读 · 0 评论 -
【BZOJ 3732】 Network
【题目链接】 点击打开链接【算法】 求出这个图的最小生成树,对于每次询问,用倍增法求出最近公共祖先,查询最小生成树上两点路径上的最大值 算法的正确性? 假设x和y在最小生成树中路径上的最长边为p,那么,根据kruskal算法的执行过程,我们发现p合并 了x和y所在的集合 假设有一条...原创 2018-06-04 22:28:13 · 168 阅读 · 0 评论 -
【BZOJ 5165】 树上倍增
【题目链接】 点击打开链接【算法】 树上倍增,时间复杂度 : O(qklog(n))【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 3000010#define MAXLOG 18const int INF = 1e8;int T,tot = 1...原创 2018-06-05 19:09:46 · 414 阅读 · 0 评论 -
【Beijing 2010】 次小生成树
【题目链接】 点击打开链接【算法】 首先,有一个结论 : 一定有一棵严格次小生成树是在最小生成树的基础上去掉一条边,再加上一条边 这个结论的正确性是显然的 我们先用kruskal算法求出最小生成树,然后,枚举不在最小生成树上的边,我们发现若加上这条边, 则形成了一个环,用最小生成树的权值和加上这条...原创 2018-06-06 21:26:52 · 184 阅读 · 0 评论