ST表
小菜鸡加油
菜鸡
什么都能折磨
展开
-
B. 攻防演练(思维+倍增)
https://codeforces.com/gym/103389/problem/B 假设字符集为{a,b,c}。 从后往前看一个串,如果当前串集合没有满,比如说字符串是cbacba 对于最后一个a,可以跳出去。 对于最后一个b,可以跳出去。 对于最后一个c,可以跳出去。 但是当第一个a的时候,就不能直接跳出去了。贪心去看发现跳到a,再跳出去。 当第一个b的时候,就不能直接跳出去了。假设跳到a,那么必然还要跳c|b|a中的一个然后再跳出去。而直接跳到b,就可以跳出去了。 因此每次记录一下当前跳应该跳的最远原创 2021-11-09 15:00:52 · 714 阅读 · 0 评论 -
D. Cut(区间倍增)
https://codeforces.com/contest/1516/problem/D 思路: 首先要考虑到如何维护互质对。暴力怎么维护。 肯定是跑一段到出现了区间内有两个数不互质的地方停止累加区间。 预处理:把每个数分解了,对于当前位置能到达的区间更新成当前数分解出的因子处于的前面区间中的最近的地方。 这样就把每个区间的段落其实划分好了。 可是这么跑还是O(nq)的。 这里还要一个倍增处理。当前位置往前跳的步数其实是单调的。从2^i的大到小,有一个满足之后就可以跳过去,最后凑成该区间的长原创 2021-04-22 16:15:59 · 156 阅读 · 0 评论 -
ST表查询区间最大最小值下标[模板]
issue哥哥的quq 上次用过应该没锅~ #include <bits/stdc++.h> using namespace std; const int maxn=2e5+10; int n,m; int a[maxn][23],b[maxn][23],numa[maxn][23],numb[maxn][23]; void init() { for(int j=1;j<=21;j++) for(int i=1;i+(1<<j)-1<=n;i++) { i原创 2020-09-17 09:07:16 · 277 阅读 · 0 评论 -
P1714 切蛋糕
题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。 吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大。 输入格式 输入文件cake.in的第一行是两个整数N,M。分别代表共有N小块蛋糕,小Z最多只能吃M小块。 第二行用空格隔开的N个整原创 2020-07-15 12:35:19 · 513 阅读 · 0 评论 -
P5835 [USACO19DEC]MEETINGS S
https://www.luogu.com.cn/problem/P5835 题目描述 有两个牛棚位于一维数轴上的点00和LL处。同时有NN头奶牛位于数轴上不同的位置(将牛棚和奶牛看作点)。每头奶牛ii初始时位于某个位置x_ixi,并朝着正向或负向以一个单位每秒的速度移动,用一个等于11或-1−1的整数d_idi表示。每头奶牛还拥有一个在范围[1,10^3][1,103]内的重量。所有奶牛始终以恒定的速度移动,直到以下事件之一发生: 如果奶牛ii移动到了一个牛...原创 2020-07-08 14:59:06 · 226 阅读 · 0 评论 -
P1816 忠诚
https://www.luogu.com.cn/problem/P1816 老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。 输入格式 输入中第一行有两个数m,n表示原创 2020-07-07 23:07:15 · 287 阅读 · 0 评论 -
P2251 质量检测
https://www.luogu.com.cn/problem/P2251 ST表模板题 #include<iostream> #include<cmath> #include<cstdio> #include<vector> #include<queue> #include<cstring> #include<algorithm> using namespace std; const int maxn=1e5+10原创 2020-07-07 22:10:37 · 198 阅读 · 0 评论 -
P3865 【模板】ST表
http://www.yyycode.cn/index.php/2020/07/04/p3865-%e3%80%90%e6%a8%a1%e6%9d%bf%e3%80%91st%e8%a1%a8/ 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为O(1)O(1)。若使用更高时间复杂度算法不保证能通过。 如果您认为您的代码时间复杂度正确但是 TLE,可以尝试使用快速读入: inline int read() { int x=0,f.原创 2020-07-04 23:08:55 · 146 阅读 · 0 评论