树状数组
文章平均质量分 67
树状数组
Selvaggia
这个作者很懒,什么都没留下…
展开
-
Billboard(线段树变形)
#include <bits/stdc++.h>#include <iostream> using namespace std;const int N=2e5+5;struct node{ int l,r,val;//线段树维护第l行到第r行的剩余最大宽度 }tr[N<<2];int h,w,n; int res;//每个通知对应放的行 void pushup(int u){ tr[u].val=max(tr[u<<1].val,tr[u&原创 2022-04-27 12:25:13 · 106 阅读 · 0 评论 -
D. Subarray Sorting9(思维+线段树)
D. Subarray Sorting题目分析线段树4个小小函数,找bug找到吐血题目D. Subarray Sorting分析这道题不该盯着排序,盯着怎么排序,只需要思考序列需要满足怎么样的条件才能使得 a,b数组通过排序能一一匹配成功从左到右依次考虑a[i]==b[i]首先要找到b[i]在a数组当中的位置,如果不存在肯定直接NOb[i]在a数组当中出现的位置可能有多个,用队列记录下来,找到b[i]在a种第一次出现的位置x,看b[i]?=min{1,x}如果b[i]不是最小的,对这段进原创 2022-04-26 22:51:30 · 269 阅读 · 0 评论 -
线段树板子
线段树板子单点修改,区间查询//#include <bits/stdc++.h>#include <iostream> #include <stdio.h>using namespace std;//#define int long longconst int N=2e5+5;int n,m;int w[N];struct node{//线段树要维护的信息 int l,r; int v;//该段的最大值 }tr[N*4];void pushu原创 2022-04-23 13:33:28 · 483 阅读 · 0 评论 -
树状数组(求子区间和+更新元素值)
树状数组欲完成修改值和查询区间和两种操作求前缀和的做法时间复杂度为O(n)O(n)O(n)使用树状数组时间复杂度降为O(logn)O(logn)O(logn)lowbit1、x&(-x)2、x- ( x&(x-1) )3、x&(x^(x-1))lowbit累计1出现的次数树状数组思想求前缀和操作修改更新操作练兵场[【模板】树状数组 1——单点更新,区间查询](https://www.luogu.com.cn/problem/P3374)241. 楼兰图腾(y轴上区间段)欲完成修改值原创 2022-03-18 23:22:19 · 560 阅读 · 0 评论 -
周日之补题
这里写目录标题[Make it Divisible by 25](https://codeforces.com/contest/1593/problem/B)堵上k个房间使剩下的房间仍能联通写法一写法二写法三踩两行荷叶能否过河放苹果Make it Divisible by 25一开始从后往前寻找末尾二位的组合,留住0、5,在50555这个例子这儿难住了末尾的5虽然是合法组合的一部分,奈何找不到合法的另一半,于是该部分需要舍弃进而想到,合法的末尾两位的组合可能出现在任意两位(当然一前一后)#inc原创 2022-03-21 10:58:27 · 213 阅读 · 0 评论