随笔分类 - 线段树 && 树状数组&&主席树
摘要:题意:给一个数组,每次给 l ,r, p, k,问区间 [l, r] 的数与 p 作差的绝对值的第 k 小,这个绝对值是多少 分析:首先我们先分析单次查询怎么做: 题目给出的数据与多次查询已经在提示着我们在用数据结构去解决这个问题,对于常见的处理区间的数据结构首选线段树啦: 我觉得这道题的关键在于此
阅读全文
摘要:题意 要你找一个最长的区间使得区间内每一个数出现次数都大于等于K。 题解-》https://blog.csdn.net/Ratina/article/details/97503663 #include<bits/stdc++.h> using namespace std; #define lson
阅读全文
摘要:大意: 给定串s, q个询问(l,r,k), 求子串s[l,r]的第kk次出现位置. 这是一篇很好的题解: https://blog.csdn.net/sdauguanweihong/article/details/100063096 加点个人: 我对上面的题解更为详细的解释下: 后缀数组处理出来的
阅读全文
摘要:题意:n个竹子,有高度,q次询问,询问之间是独立的,每次查询输入l,r,x,y代表砍区间[l,r]]内的竹子砍y次,最后一次要砍成0,每次砍掉的总长度相同,问第x次砍的高度是多少。 既然每次要求砍掉的东西都相同,那么就可以直接算出来砍第x次需要砍掉多少(sumh(l~r)/y*x),然后只需要二分这
阅读全文
摘要:题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线性基。 用线段树去维护区间合并 #include <bits/stdc++.h> using nam
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6562 题意: q次操作 1.将第l~r个数的左边和和右边都加上一个数d, 使得这个数变成 dsiddsid的形式 2.询问区间和. 题解:对于一个数字x若执行第一个操作则 则若对于一个区间sum(l,r)执行第一
阅读全文
摘要:看到一篇好的博客特意转出来观摩大佬:转:https://blog.csdn.net/greybtfly/article/details/81413526 题目大意:给n个箱子排成一排,从头到尾按顺序依次开箱子,第i个箱子都有概率pi开出size为di的钻石。 一开始手中是没有钻石的,如果打开箱子后钻
阅读全文
摘要:第一式:https://ac.nowcoder.com/acm/contest/143/I 题意: 有 n 个点,一个点集 S 是好的,当且仅当对于他的每个子集 T,存在一个右边无限长的矩形,使得这个矩形包含了 T,但是和 S-T 没有交 求这 n 个点里有几个好的点集1<=n<=10^5 1):当
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/907/C 链接:https://ac.nowcoder.com/acm/contest/907/C来源:牛客网 题目描述 Rabbit得到了一个长度为N的数列(数列编号从0到N−1)。数列中每个数vali满足1<=vali<=
阅读全文
摘要:https://acm.ecnu.edu.cn/contest/173/problem/E/ 分析: 考虑这样一种情况,如果对一个点连续地做几次乘操作,那么之后紧跟着的除操作只需要将乘操作的次数减少即可。(因为如果当前是乘于的最小素因子后面肯定也是除上这个) 那么对这个点的操作将会变成连续的一段乘或
阅读全文
摘要:https://nanti.jisuanke.com/t/38229 题目: 给一颗树,m次查询ui->vi这条链中边权小于等于ki的边数。 #include <bits/stdc++.h> #define mid (l+r>>1) #define lson (o<<1) #define rson
阅读全文
摘要:https://nanti.jisuanke.com/t/38228 题意给你一个序列,对于每个连续子区间,有一个价值,等与这个区间和×区间最小值,求所有子区间的最大价值是多少。 分析:我们先用单调栈预处理 区间 [L[i] , R[i] ] 最小值为a[i] , 的L[i] , R[i] ; 首先
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6464 不理解先看博客:https://blog.csdn.net/g21glf/article/details/82986968 已知一开始有一个空序列,接下来有Q次操作,每次操作给出type、first和sec
阅读全文
摘要:题目描述: 给你一个长度为n的最开始为0的数以及m个更新操作以及数据生成器参数X,Y,Z。每次操作,将由数据生成器生成出li,ri,vi。让你从区间[li,ri]中,将所有小于vi的数变为vi。最后让你求从1到n的 i*ai的亦或和。 分析:区间操作优先考虑线段树 , 那线段树存储什么数值呢? 我们
阅读全文
摘要:题意给定一个长度为n的序列,和m个区间。对一个区间的操作是:对整个区间的数-1可以选择任意个区间(可以为0个、每个区间最多被选择一次)进行操作后,要求最大化的序列极差(极差即最大值 - 最小值)。easy version的范围是(1≤n≤300,0≤m≤300)hard version的范围是(1≤
阅读全文
摘要:#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define LL long long using namespace std; const int MAXSIZE = 100100; int b[
阅读全文
摘要:学习资料处 HDU 1542 Atlantis 题意:给出几个矩阵求这些矩阵覆盖的面积: 给出左上角与右下角 Sample Input 20 5 4 12 4 6 2 20 5 4 12 4 6 2 Sample Output 20 #include<bits/stdc++.h> using nam
阅读全文
摘要:题意: 给你一棵n个节点的树,每个点有一个权值,初始全为0,m次操作,每次三个数(v, d, x)表示只考虑以v为根的子树,将所有与v点距离小于等于d的点权值全部加上x,求所有操作完毕后,所有节点的值 首先要明确两件事情性质1.每个人的操作只会影响到他的子孙(包括自己) 性质1.每个人的操作只会影响
阅读全文
摘要:Leonid wants to become a glass carver (the person who creates beautiful artworks by cutting the glass). He already has a rectangular w mm × h mm sheet
阅读全文
摘要:传送门:Hdu 5862 Counting Intersections 题意:有n条线段,每一条线段都是平行于x轴或者y轴,问有多少个交点 分析: 基本的操作流程是:先将所有的线段按照横树坐标x按小的优先排序,注意是所有的线段 ;(这里是将线段都去掉只保留两个端点) 然后从左到右的顺序经行扫描,遇到
阅读全文

浙公网安备 33010602011771号