树状数组
文章平均质量分 56
Tekim
个人写点东西的地方
展开
-
洛谷p1198最大数
原题数据大小是1e6,实现单调修改和区间最大值,和树状数组模板类似,不过有地方需要注意。求最后l个值得最大值,只需要反着装值,到x求后l,那么求x+l之前的最值就可以了(x到n的值已求)。#include#include#include#include#include#include#define in(x) scanf("%lld",&x);using namespac原创 2017-08-31 16:46:34 · 393 阅读 · 0 评论 -
洛谷p1496火烧赤壁
原题排着找就行了,但是范围太大,需要离散化一下,左端点由小到大排序,然后每个进行判断。另外结构体习惯用stablesort。#include#include#include#include#include#include#include#define in(x) scanf("%d",&x);using namespace std;int n;struct node原创 2017-08-31 15:54:24 · 705 阅读 · 0 评论 -
洛谷p1908逆序对
原题这里有一个树状数组的做法,先离散化,由小到大排序,每枚举到一个点,就加入树状数组,然后计算之前比他大的值,加入ans。#include#include#include#include#include#include#define in(x) scanf("%d",&x);using namespace std;int n,p[40001],c[40001];struc原创 2017-08-31 15:38:06 · 428 阅读 · 0 评论 -
c++树状数组2模板
原题区间修改,单点求值,那么都需要logn的复杂度,将修改的效果添加到大节点上,向下遍历树,这样最后求单点时向上遍历树。#include#include#include#include#include#include#define in(x) scanf("%d",&x);using namespace std;int n,m,a[500001],c[500001];vo原创 2017-08-31 15:29:11 · 377 阅读 · 0 评论