倍增(RMQ/st算法,树上倍增)
Nowed
把泪水种在心上,一定会开出勇敢的花。
展开
-
#RMQ# [校测 小鱼吃大鱼]
Title 求max{Aimod Aj}(Ai≥Aj)max\begin{Bmatrix} A_i\mod\ A_j \end{Bmatrix}(A_i\geq A_j)max{Aimod Aj}(Ai≥Aj) Solution 我们可以暴力枚举值域的倍数, 查找在这个[j,j+i−1][j,j+i-1][j,j+i−1]区间内的最大数值(可以用RMQRMQRMQ预处理) 减去初始值jjj,就是这个数值在%j\%j%j时的值。 Code #include<cstd原创 2020-10-30 20:32:20 · 128 阅读 · 0 评论 -
#倍增+矩阵乘法# [luogu P3597] [POI2015]WYC
Title P3597 [POI2015]WYC Solution 注意这道题code中的一些细节 这道题做的我人都傻了,关键是有两种理解,但是关系不大。 。。 f[k][i][k]f[k][i][k]f[k][i][k]表示的是iii到jjj之间路径长度为2k2^k2k的路径条数。 特别的,f[k][i][0]f[k][i][0]f[k][i][0]表示的是终点为iii路径长度为2k2^k2k的路径长度条数。 然后可以倍增组合。 上面的等于可能是小于等于,关于这个还有下面的减一,我都不是很明白。 可以原创 2020-10-15 21:06:23 · 159 阅读 · 0 评论 -
#二分+RMQ# [luogu P4085] [USACO17DEC]Haybale Feast G
Title P4085 [USACO17DEC]Haybale Feast G Solution 注意rmq中的log要预处理好,还有注意是否要long long 注意本题二分的是r,所以判断条件的时候不要习惯性的打成r-l Code #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #define ll long long #define rep(i,x,y原创 2020-10-15 10:57:21 · 135 阅读 · 0 评论 -
#倍增优化Floyd# [luogu CF148E] Porcelain
Title CF147B Smile House Solution 设d[s][i][j]d[s][i][j]d[s][i][j]为ddd步从iii到jjj的距离,d[s][i][j]=max(d[s][i][j],d[s−1][i][k]+d[1][k][j])d[s][i][j]=max(d[s][i][j],d[s-1][i][k]+d[1][k][j])d[s][i][j]=max(d[s][i][j],d[s−1][i][k]+d[1][k][j]),若d[k][i][i]>0d[k][i原创 2020-08-19 20:19:13 · 143 阅读 · 0 评论 -
#树上差分#[luogu 3128] [USACO15DEC]最大流Max Flow
题目 https://www.luogu.com.cn/problem/P3128 解题思路 树上差分。 代码 #pragma GCC optimize("O2") #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #include<cstdio> #include<algorithm> #include&...原创 2019-11-30 18:56:06 · 213 阅读 · 0 评论 -
[jzoj 6294] 动态数点 {RMQ+二分}
题目 解题思路 跟数字对这道题一模一样, 可是比赛的时候竟然mle了。 不过需要注意一下,题目数据范围有一点坑,全部改成int就可以AC了。 二分时要从111到nnn。 代码 #pragma GCC optimize("O2") #pragma GCC optimize("O3") #include<cstdio> #include<algorithm> #inclu...原创 2019-08-15 16:56:36 · 221 阅读 · 0 评论 -
[poj 3264] Balanced Lineup {RMQ}
题目 http://poj.org/problem?id=3264 解题思路 水题一道 复习rmq, 代码 #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int n,m,f[200001][40],g[200001][40]; int main(){ ...原创 2019-08-08 15:17:24 · 126 阅读 · 0 评论 -
[jzoj 4811] 【NOIP2016提高A组五校联考1】排队 {后序遍历+倍增}
题目 解题思路 “1”问求的是后序遍历。 “2”问就是删去这个点到根节点的有颜色的链的最顶端删掉,然后用小根堆来维护。 代码 #include<cstdio> #include<algorithm> #include<queue> using namespace std; const int N=1e5+10; struct graph{ int ...原创 2019-07-05 07:37:29 · 192 阅读 · 0 评论 -
[jzoj 3895] 数字对 {RMQ+二分}
题目 Description 小H是个善于思考的学生,现在她又在思考一个有关序列的问题。 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= n)。 这个特殊区间满足,存在一个k(L <= k <= R),并且对于任意的i(L <= i <= R),ai都能被ak整除。这样的一个特殊区间 [L, R]价值为...原创 2019-01-25 20:32:37 · 400 阅读 · 0 评论 -
[HDU2586] How far away ?{LCA.tarjan算法/倍增算法}
文章目录题目解题思路代码`倍增(TLE)`代码`tarjan算法(AC)`$tanjan$算法本质上是使用并查集对“向上标记法”的优化 题目 http://acm.hdu.edu.cn/showproblem.php?pid=2586 解题思路 倍增算法O((n+m)log&nbsp;n)O((n+m)log\ n)O((n+m)log&nbsp;n) LCA.tarjan算法O(n+m)O(n...原创 2018-12-01 16:57:15 · 470 阅读 · 3 评论 -
[luogu P3865] 【模板】ST表
题目 https://www.luogu.org/problemnew/show/P3865#sub 解题思路 ststst表可以有很多用途,例如RMQ问题。 其他更多模板请见(https://blog.csdn.net/qq_39897867/article/details/83623201) 代码 #include<cstdio> #include<cmath> #...原创 2018-11-22 17:31:44 · 197 阅读 · 0 评论 -
【RMQ】假期
题目 题目描述 经过几个月辛勤的工作,FJ决定让奶牛放假。假期可以在1…N天内任意选择一段(需要连续),每一天都有一个享受指数W。但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不能得到足够的休息;假期也不能超过Q天,否则奶牛会玩的腻烦。FJ想知道奶牛们能获得的最大享受指数。 输入 第一行:N,P,Q. 第二行:N个数字,中间用一个空格隔开。 输出 一个整数,奶牛们能获得的...原创 2018-02-08 12:13:24 · 319 阅读 · 0 评论 -
【RMQ】飞船
题目 题目描述 2008年9月25日21点10分,酒泉卫星发射中心指控大厅里,随着指挥员一声令下,长征二号F型火箭在夜空下点火起飞,神舟七号飞船载着翟志刚、刘伯明、景海鹏3位航天员,在戈壁茫茫的深邃夜空中飞向太空,开始人类漫步太空之旅。第583秒,火箭以7.5公里/秒的速度,将飞船送到近地点200公里、远地点350公里的椭圆轨道入口。而此时,火箭的燃料也消耗殆尽,即将以悲壮的方式与飞船告别。这...原创 2018-02-08 11:31:49 · 367 阅读 · 0 评论 -
【NOIP2014模拟8.17】Magical GCD//2018.2.5
题目 Description 对于一个由正整数组成的序列, Magical GCD 是指一个区间的长度乘以该区间内所有数字的最大公约数。给你一个序列,求出这个序列最大的 Magical GCD。 Input 单个测试点包含多组数据。 输入的第一行是一个整数T表示数据组数。 每组数据的第一行是一个整数N,描述序列长度。 接下来N个数字,描述这个序列元素A[i]。 Output 对原创 2018-02-07 20:25:04 · 291 阅读 · 0 评论