#include <string.h> #include <stdio.h> #include #include using namespace std; int n,m,a[11000],c[11000]; //差分建树,区间更新 int lowbit(int x) { return x&-x; ...
分类:
编程语言 时间:
2020-10-06 20:10:09
阅读次数:
25
树状数组 部分转自Xenny 前置芝士 什么是树状数组 用数组来模拟树形结构 可解决问题 解决大部分基于区间上的更新以及求和问题 和线段树的区别 树状数组可以解决的问题都可以用线段树解决,但是树状数组码量小,系数少(很多) 优点和缺点 修改和查询的复杂度都是O(logN),而且相比线段树系数要少很多 ...
分类:
编程语言 时间:
2020-07-19 17:57:33
阅读次数:
66
题意:给定一个数组a[1],a[2],...,a[n],他可以进行如下的m个操作,一个操作可以是如下三个的其中一个:1.打印[l, r]的和,即求$\sum_^a[i]$。2.对[l, r]之间的每个数取模x,\(a[i] = a[i]\quad mod\quad x\)。$3.让a[k] = x$ ...
分类:
其他好文 时间:
2020-07-02 21:33:07
阅读次数:
50
树状数组简单来看就是一个维护前缀和的数据结构,它相当于线段树去掉了所有的右子树,需要查询时,通过信息拼接来达到查询目的,基础应用为 **(单点更新,区间查询)** **(区间更新,单点查值)** (多了个差分) **(区间修改,区间查询)** (通过数学推导得出我们需要维护两个树状数组) 具体内容参 ...
分类:
编程语言 时间:
2020-05-05 23:35:57
阅读次数:
76
题目 https://www.luogu.com.cn/problem/P3368 题目分析 是区间更新 单点查询,使用树状数组 代码 #include<iostream> #include<cstdio> using namespace std; long long a[500001], c[50 ...
分类:
编程语言 时间:
2020-05-04 19:50:12
阅读次数:
78
A.小希的迷宫(并查集) 题意: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间 ...
分类:
其他好文 时间:
2020-04-17 23:23:03
阅读次数:
66
Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral poste ...
分类:
其他好文 时间:
2020-04-05 00:52:42
阅读次数:
87
概述 这篇文章前半部分主要研究树状数组的 ,后半部分研究 。 前置知识 树状数组的基本知识以及单点更新区间求和,差分的思想。 区间更新,单点求和 分析 回顾一下最简单的树状数组的功能:快速求出一个数列中某个数的前缀和,以及修改一个位置上的数。 现在我们要利用这两个功能实现:快速求出某个数列中某个数的 ...
分类:
编程语言 时间:
2020-03-16 09:54:11
阅读次数:
59
题目大意:输入n,m,k。n个数,m个区间更新标记为1~m。n次操作,每次操作有两个数x,y表示执行第x~y个区间更新。 题解:通过差分来表示某个区间更新操作执行的次数。然后用线段树来更新区间。 #include<bits/stdc++.h> using namespace std; const i ...
分类:
其他好文 时间:
2020-02-03 13:30:02
阅读次数:
57
应该也可以用线段树/树状数组区间更新怪兽的生命值来做 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long pre[200007]; 5 int main(){ 6 io ...
分类:
其他好文 时间:
2020-01-27 17:31:04
阅读次数:
62