![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
WINDZLY
我不知道最后会得到什么样的结果,但我知道不努力我什么也得不到
展开
-
线段树模板
实际上线段树足够的空间 = n向上扩充到最近的2的某个次方)的两倍举个例子:假设数组长度为5,就需要5先扩充成8,8*2=16.线段树需要16个元素。如果数组元素为8,那么也需要16个元素。#include <bits/stdc++.h>#define maxn 100005typedef long long ll;using namespace std;...原创 2018-08-08 14:12:44 · 132 阅读 · 3 评论 -
区间最大公约数
题目链接:https://www.acwing.com/problem/content/description/247/可以用常数小的树状数组来求和,用线段树单点修改2333这个题需要用到更相减损术gcd(a,b) == gcd(a,b- a),数学归纳法可以推广gcd(a,b,c) == gcd(a,b - a,c -b)这样我们可以维护一个b数组等于a[i] - a[i - 1...原创 2019-05-01 20:09:52 · 1049 阅读 · 0 评论 -
一个简单的整数问题2
题目链接:https://www.acwing.com/problem/content/description/244/对于区间的修改和区间求和(树状数组和线段树)树状数组在区间求和的时候需要维护两个数组,两个数组都是差分至于怎么区间求和我们先假设所有的都加上了某一个区间和然后减去那些多加上的代码实现线段树区间求和我们需要用到延迟标记让时间复杂度降到logn树状数组代码...原创 2019-05-03 00:35:25 · 204 阅读 · 0 评论 -
扫描线
扫描线是一种用来处理矩形相交的面积问题的算法渐近时间复杂度约为O(nlogn) O(nlogn)O(nlogn)参考博客:https://blog.csdn.net/niiick/article/details/81985889练习题目(POJ - 1151 Atlantis)题目链接:http://poj.org/problem?id=1151扫描线能将一个二维的转成一维...原创 2019-05-04 01:04:23 · 121 阅读 · 0 评论 -
SPOJ GSS3: Can you answer these queries III
维护一个左区间和右区间,然后合并题目链接https://www.acwing.com/problem/content/description/246/#include <bits/stdc++.h>#define endl '\n'using namespace std;typedef long long ll;typedef long double ld;c...原创 2019-04-29 20:02:53 · 225 阅读 · 1 评论