ICode9

精准搜索请尝试: 精确搜索
  • 倍增法求最近公共祖先 笔记与思路整理2019-08-16 09:57:16

    核心为二维father数组:father[i][j]存储第i个点向上跳2^j次到达的点       如father[i][0]表示点i的父亲,              [i][1]表示i向上两层,              [i][2]表示i向上四层。 用一次DFS维护father数组以及dep等等。 详解见函数主体: int LCA(int x, int y){

  • 暑假集训笔记2019-08-12 20:03:41

    zzy在讲课: Day0:讲课前: Day1:讲课时 1.最小生成树: Kruskal在竞赛中用的比较常见 Prim我也不大会。——zzy fAke,一定是fAkE。 读课件大法好。 \(log(n)\)是以2为底的n的对数。 沉思的zzy特别帅。 我们可以简单的把期望理解成平均值。 2.倍增: 快速幂: 时间复杂度算最坏的。

  • 超级重要的倍增算法+初学LCA== 继续自闭的一天 属实自闭 洛谷p3379 最近公共祖先(LCA)2019-08-08 20:35:55

    最近公共祖先简称LCA(Lowest  Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。为了方便,我们记某点集S=v1,v2,.......,vn的最近公共祖先为LCA(S) 1 LCA (u) = u 2 u 是v 的祖先,当且仅当LCA (u, v) = u 3 如果u 不为v 的祖先,并且v 不为u 的祖先,那

  • 倍增2019-08-03 17:03:31

    1.倍增求LCA 货车运输 2.倍增+线性基 SCOI2016幸运数字 3.预处理出最小点和次小点 开车旅行 4.倍增+floyd 跑路 5.倍增+二分 疫情控制 6.倍增+基环树 P3533

  • 倍增求LCA2019-07-22 23:01:29

    1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cstdlib> 6 using namespace std; 7 #define maxn 500010 8 9 int n,m,s,tot;10 int deep[maxn],first[maxn],fa[maxn][22];11 struct edge{

  • 最近公共祖先 LCA (Lowest Common Ancestors)-树上倍增2019-07-07 18:00:21

    树上倍增是求解关于LCA问题的两个在线算法中的一个,在线算法即不需要开始全部读入查询,你给他什么查询,他都能返回它们的LCA。 树上倍增用到一个关键的数组F[i][j],这个表示第i个结点的向上2^j层的结点。在RMQ-ST中用救是这样的数组。 在树上倍增中也是关键点。 如在上图中,我们要找结

  • 倍增 质检习题2019-07-06 10:03:07

    1114: B15-倍增-质检 时间限制: 1 Sec  内存限制: 128 MB提交: 1  解决: 1[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 输入    输出 样例输入 Copy 25 1 498 2 1 7 95 1 648 2 1 7 9 样例输出 Copy 21 提示      来源

  • P3292 [SCOI2016]幸运数字 (倍增线性基)2019-07-01 10:47:56

    题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一。每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征。 一些旅行者希望游览 A 国。旅行者计划乘飞机降落在 x 号城市,沿着 x 号城市到 y 号城市之间那条唯一的

  • 0x06 倍增2019-06-28 21:00:07

    【例题】CH0601 Genius ACM 80分写法: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 const int maxn=500000+10; 6 int n, m, p, q, a[maxn], b[maxn]; 7 long long t; 8 9 long long check(int l, int r) {10

  • 倍增2019-06-25 21:53:06

    倍增是一种很好的优化复杂度的方式,通常是利用二进制的思想,使逐步搜索变成2^k拓展的搜索,所以定义一个f[i][j]数组表示节点i的2^j倍祖先。常见的倍增算法的应用有RMQ和倍增版LCA。 #include<bits/stdc++.h>using namespace std;const int N = 100;int n, q, a, b, c = 0, depth[N],

  • AT2164 AGC006C Rabbit Exercise2019-06-22 10:01:15

    AT2164 AGC006C Rabbit Exercise 数轴上有 \(n\) 个点,每个点的坐标为 \(a_i\) 。一轮操作包含 \(m\) 次变换,第 \(i\) 次将 \(b_i(1<b_i<n)\) 随机跳到点关于 \(b_i-1\) 或 \(b_i+1\) 的对应点。求 \(k\) 轮操作后每个点的期望位置 \(n,\ m\leq10^5,\ k\leq10^{18},\ |a_i|\leq10^9

  • 树上倍增求LCA2019-06-08 12:41:59

    由于马上要考电路了,而且学物联网就很烦,不知道到底要主攻哪个方向比较好,乱七八糟。 先给出几篇宝藏博客,之后的有时间再补上 https://blog.csdn.net/wangwangbu/article/details/51453084 https://www.cnblogs.com/yyf0309/p/5972701.html https://blog.csdn.net/Stockholm_Sun/artic

  • Codeforces 1175E 倍增2019-06-06 18:38:38

    题意:给你n个区间和m次询问,每次询问一个区间[l, r]至少需要几个区间覆盖? 思路:如果只有一个区间,并且区间是整个取值范围的话,这是一个经典的区间覆盖问题,我们都知道贪心可以解决。现在我们需要快速知道对于一个指定区间至少需要多少个区间来覆盖。我们有一个初步想法,我们可以预处理出

  • [LOJ 6435][PKUSC 2018]星际穿越2019-05-28 08:50:18

    [LOJ 6435][PKUSC 2018]星际穿越 题意 给定 \(n\) 个点, 每个点与 \([l_i,i-1]\) 之间的点建立有单位距离的双向边. \(q\) 组询问从 \(x\) 走到 \([l,r]\) 中的随机一点的期望距离. 输出既约分数. \(n,q\le 3\times 10^5\), \(l<r<x\). 题解 显然对于一个 \(k\), \(k\) 步之内能到

  • 南昌网络赛 Distance on the tree 主席树+树上倍增+离散化2019-04-20 19:52:21

    题目链接:https://nanti.jisuanke.com/t/38229 题意:给出一个n个点,有边权的树,求两点路径上边权小于等于k的边的数量 题解:先离散化下,用主席树维护下从上到下的边权,倍增求下LCA,最后查询下即可 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; struct node1{ i

  • 倍增lca模板2019-04-14 17:53:27

    注意fa数组和depth数组一定要先初始化。 #include <iostream> #include <algorithm> #include <stdio.h> #include <string.h> #include <vector> using namespace std; int fa[10005][50],depth[10005],lg[10005]; vector<int>g[10005]; void dfs(int

  • Einstein新移动应用带来了客户群的倍增2019-04-04 17:50:06

    尽管遭遇加密货币熊市,创新移动应用的推出吸引了6万多名新客户   不列颠哥伦比亚省温哥华--(美国商业资讯)--全球增速最快的加密货币交易所之一Einstein Exchange宣布,公司自由移动钱包和交易应用的推出带来了卓越的客户增长。在推出14天之后,Einstein新增了6万多个客户,意味着客

  • LCA--倍增法2019-03-25 23:45:13

    一般来求LCA有3种方法 1.倍增 2.RMQ+欧拉序 3.tarjan(离线)   本文将倍增求lca 这个算法是很常见很常见的 也是较好理解的 (我也不明白假期学长讲的时候我为什么死活都不明白  自闭qwq  对不起学长qwq  明明学长讲的是最好的qwq  想学长了qwq)   -------------------------------

  • P1613 跑路 倍增思想 + 邻接矩阵2019-02-14 23:43:02

    题意 给定一个有向图,每条边的花费为1。现在有一个空间跑路器,可以走2^k长度的路,只用花1秒的时间。问从1走到n最少的时间。n <= 50, k <= 64。 思路 这道题说是倍增,但是写起来不见倍增的影子,我觉得真妙,对倍增有了更膜拜的认识。我们可以开一个bool矩阵dp【i】【j】【k】,表示i到j是否

  • ST算法(倍增)(用于解决RMQ)2019-02-13 19:47:59

    ST算法 在RMQ(区间最值问题)问题中,我了解到一个叫ST的算法,实质是二进制的倍增。 ST算法能在O(nlogn)的时间预处理后,用O(1)的时间在线回答区间最值。 f[i][j]表示从i位起的2^j个数中的最大(最小)数,即[i,i+2^j-1]中的最大(最小)值,从其定义中可以看出来。 下面的实现代码以最大值为例

  • [BZOJ5293][BJOI2018]求和(倍增)2019-02-11 08:50:51

    裸的树上倍增。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 5 using namespace std; 6 7 const int N=300010,mod=998244353; 8 struct E{ int to,nxt; }e[N*2]; 9 int fa[N],a[N],d

  • 倍增算法2019-02-01 11:43:39

    题目: 有一个喜欢动画的少年,他希望每周都能收看尽可能多的动画。每一部动画都在每周固定的时间段播出。不过,由于他不喜欢录下电视节目留到以后观看,因此只能在播出时观看。此外,他每周看的动画都是固定的,并且他不可能同时观看播出时间有重叠的两部动画。在他的国家,一周共被划分成了M

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有