题意:2种操作1 a b k c 在区间[a,b]中的(i-a)%k==0的位置i上的数+c2 a 查询位置a的值输出每次查询的值分析:开始想到多维的线段树,但比较麻烦,看了题解才知道,用BIT实现区间更新,单点查询,若在区间[a,b]上的数加c就在a位置加c ,b+1位置加-c 这样在查询时sum...
分类:
其他好文 时间:
2015-08-16 18:16:54
阅读次数:
84
题意:给你三维空间两种操作,给出两顶点坐标,把它们确定范围(长方体)内的数全部取反、查询给定点的值。初始全部为零分析:有了前面的知识,用BIT实现区间更新单点查询,再用多维实现即可#include #include #include #include #include #include #inclu...
分类:
其他好文 时间:
2015-08-16 18:14:26
阅读次数:
91
题意:给出每个花开花的时间段,每询问一个时间点输出该时间点开花的数量分析:线段树的区间更新,单点查询,但发现时间很大,没法存区间,就想到了离散化。离散化就是把要处理的数据统一起来重新标号。#include #include #include #include #include #include #i...
分类:
其他好文 时间:
2015-08-16 18:07:17
阅读次数:
129
树状数组天生用来动态维护数组前缀和,其特点是每次更新一个元素的值,查询只能查数组的前缀和,但这个题目求的是某一区间的数组和,而且要支持批量更新某一区间内元素的值,怎么办呢?实际上,还是可以把问题转化为求数组的前缀和。 首先,看更新操作update(s, t, d)把区间A[s]...A[t]都增加....
分类:
编程语言 时间:
2015-08-15 21:21:15
阅读次数:
137
最近又开始刷线段树了。。还要改一下线段树的风格。poj 2155Matrix二维线段树,区间更新,单点查询。。不会用新的代码写,用以前的风格写过了。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using nam...
分类:
其他好文 时间:
2015-08-15 14:47:15
阅读次数:
307
题目链接:http://ccnu.acmclub.com/index.php?app=problem_title&id=613&problem_id=23875
题意:给你一个长度为n的数组(下标从1开始)。进行如下操作。
(1)1
x y v :表示将下标=(x,x+2,x+4,x+6,.......并且
(2)2
x y :查询[x,y]闭区间的元素和。
思路:...
分类:
其他好文 时间:
2015-08-14 21:30:18
阅读次数:
126
第一种是sum存放每个点的值,然后区间更新,把需要更新的父亲的sum设为-1,代表此区间有被更新过,就不由挪动子节点了。
vj上跑的时间这个快一点。
另一种lazy标志位,区间更新时,把lazy标志位设为1,当查找的区间含lazy过的,就变更子节点位原来的值,所以需要一个tag记录原来的值。
#include
using namespace std;
#define N 100100
st...
分类:
其他好文 时间:
2015-08-14 11:54:41
阅读次数:
128
给出一个小写字母组成的字符串,然后q个操作,a,b,c ,c为0 ,将区间 [a,b] 按逆字典序排,c为1,将此区间按字典序排。用一颗线段树,维护每个节点各个字母出现的种类数,每次操作操作后,暴力将字母a组成的区间,字母b组成的区间等等,区间内所有元素更新为a,b,等等。打个lazy标记,区间更新...
分类:
其他好文 时间:
2015-08-13 22:04:43
阅读次数:
118
Just a Hook
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22730 Accepted Submission(s): 11366
Problem Description
In the game ...
分类:
其他好文 时间:
2015-08-13 12:19:41
阅读次数:
116
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3397题意:给定n个数,由0,1构成。共有5种操作。每个操作输入3个数,op,a,b。
op == 0,将区间[a,b]赋值为0;
op == 1,将区间[a,b]赋值为1;
op == 2,将区间[a,b]内的01反转;
op == 3,查询区间[a,b]中1的个数;
op == 4,查询区间[a,b]...
分类:
其他好文 时间:
2015-08-12 23:35:42
阅读次数:
175