差分
wtcl
这个作者很懒,什么都没留下…
展开
-
Shooting HDU - 4866(主席树+离散化+差分)
题目:https://vjudge.net/problem/HDU-4866 题意:给定n个区间(l,r),权值是d(为区间的纵坐标)。有m次询问,每次给定x(横坐标),a,b,c 。 k=(pre*a+b)%c,求距离x最近的k个距离的权值和(当x上方的区间小于k时,答案加上(k-x)*上方的区间最大的权值)。(结合图片会很清楚) 思路: 题意简单来说就是求x上方的前k个区间。 把权值d离散化,以横坐标i为root[i]建立主席树。 考虑如何将区间插入主席树,可以运用差分的思想,对于(l,r,d) roo原创 2020-06-25 15:02:28 · 158 阅读 · 0 评论 -
一个简单的整数问题(树状数组+差分)
题目链接:https://www.acwing.com/problem/content/248/ 树状数组+差分可以实现区间修改和单点查询 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1e5+10; #define ll long long ll a[N]; ll c[N];int n,m;原创 2020-05-19 01:06:36 · 152 阅读 · 0 评论 -
Codeforces Round #643 (Div. 2)C. Count Triangles(差分)
题目大意:给出 A B C D ,规定 A <= x <= B <= y <= C <= z <= D ,问 ( x , y , z ) 三元组为三角形的情况有多少种 思路: 三角形三条边为x,y,z;需要满足:x+y>z z-y<x x,y,z 相对大小已知 只需要满足两个式子中的一个就可以满足这两个式子 我们这里满足 x+y>z 枚举x+y的所有情况 找到符合条件的z x+y属于[a+b,b+c]; 求出[a+b,b+c]每个数的个数再乘.原创 2020-05-17 11:10:11 · 96 阅读 · 0 评论 -
D. Constant Palindrome Sum(差分)
讲解:https://blog.csdn.net/qq_45458915/article/details/105682206 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=4e5+10; int a[N]; int s[N]; void add(int l,int r,int c) { s[l原创 2020-05-08 23:51:59 · 179 阅读 · 0 评论