
线段树
ACkingdom
这个人很懒,什么都没有留下
展开
-
洛谷-P4588 [TJOI2018]数学计算(线段树)
题目链接题意:给你一个初始值为1的数组,你可以对其进行两种操作:1.乘上某个数2.除以第i次(第i次操作一定是操作1)乘上的数(其实就是把第i个操作取消掉)每次操作过后求这个数的值。思路:线段树维护乘积,操作1就更新第i个节点,操作2就将该节点的值更新为1,将线段树初始节点全部初始化为1,最后直接求线段树最根部节点的值即可。代码:#include <iostream>#include <algorithm>using namespace std;#define原创 2020-06-13 19:52:20 · 271 阅读 · 0 评论 -
洛谷-P3373 线段数 2
题目链接题意:给你一个数组对他的某个区间进行如下操作:1.区间加上某个数2.区间乘上某个数3.区间求和数据范围:n<=1e5;(数组长度)m<=1e5;(操作数)思路:先乘后加思想,在每次加上某个数之前先乘上之前已经乘过的数。代码:#include<bits/stdc++.h>using namespace std;#define ll long long int n,m,a[1000005],mod;struct node{ ll sum,l,r原创 2020-06-12 20:36:06 · 244 阅读 · 0 评论 -
线段树模板
线段树详解建树:int sum[N<<2],add[N<<2];//sum求和,add为懒惰标记int a[N],n;//存原数组数据下标[1,n]//PushUp函数更新节点信息(这里是求和):void pushup(int p){ sum[p]=sum[p*2]+sum[p*2+1];}//Build函数建树:void build(int l,int r,int p)//l,r表示当前节点区间,rt表示当前节点编号{ if(l==r)//若到达叶节点原创 2020-06-11 21:08:39 · 133 阅读 · 0 评论 -
洛谷-P2574 XOR艺术(线段树)
题目链接题意:给你一个全为01的数组,有两个操作,一个是让区间变成全部异或,另一个是让全部区间求和。思路:线段树代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=5e5+5;const int inf=0x3f3f3f3f;const int原创 2020-06-10 20:05:26 · 199 阅读 · 0 评论 -
洛谷-P1908 逆序对(线段树区间求和+离散化)
题目链接题意:逆序对就是序列中 ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目,注意序列中可能有重复数字。思路:用一个flag数组标记哪些数字已经放入数组中,用线段树求flag的前缀和,求放入的数字前已经放入了多少个比他小的数字。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_st原创 2020-06-08 21:17:44 · 322 阅读 · 0 评论 -
洛谷-P3368 树状数组模板2(利用树状数组与拆分实现或线段树实现)
题目链接题意:如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数数加上 xx;2.求出某一个数的值。思路:将拆分的数组放入树状数组中求和代码:#include<bits/stdc++.h>using namespace std;//#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=5e5+5;const int in原创 2020-06-02 20:32:45 · 217 阅读 · 0 评论 -
洛谷-P3372 【模板】线段树 1(区间修改与区间求和)
题目链接题意:给你一个数组对其进行区间修改和区间求和。思路:线段树基础模板。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+5;const int inf=0x3f3f3f3f;int n,m,a[N],ans[N<<2原创 2020-06-06 20:31:39 · 836 阅读 · 0 评论