A Simple Problem with IntegersTime Limit:5000MSMemory Limit:131072KTotal Submissions:72265Accepted:22299Case Time Limit:2000MSDescriptionYou haveNinte...
分类:
其他好文 时间:
2015-05-27 20:54:38
阅读次数:
265
原题链接:http://ac.jobdu.com/problem.php?pid=1407线段树,区间更新,查询区间最小值。注意区间更新,查询的时候,区间$\begin{align*}[L,R] \end{align*}$$\begin{align*}L \end{align*}$都可能大于$\be...
分类:
其他好文 时间:
2015-05-27 15:29:16
阅读次数:
116
Just a HookTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 20532Accepted Submission(s): 10284Probl...
分类:
其他好文 时间:
2015-05-26 23:05:52
阅读次数:
117
我们都知道区间更新时候有个lazy 标志。而这个lazy 标志 我们要使得其可以理论重叠。即使操作不能重叠。也尽可能让其重叠。比如:一道修改区间>x的值为gcd(x,val)的操作题。首先针对查找区间>x 这种查找。我们在节点上存储 区间最大值 作为剪枝。另外针对求gcd(x,val)操作。用向量存...
分类:
其他好文 时间:
2015-05-26 21:14:25
阅读次数:
142
题意:
将一段长为L的板子染色,板子可分为编号为1,2,3...L的L段,总共有O次操作,操作有两种:1.将A到B区间染为颜色C 2.询问A到B区间有多少种颜色。颜色从1到T编号,不超过30种。
思路:1.由于颜色不超过30种,所以可以考虑位运算,每一位代表一种颜色,一个32位整数就可以存储所有的颜色状态。
2.对于操作一,就是区间更新操作,需要用lazy操作,当需要更新子节点...
分类:
其他好文 时间:
2015-05-26 09:21:26
阅读次数:
150
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1798线段树区间更新: 1. 区间同同时加上一个数 2. 区间同时乘以一个数 1 #include 2 #include 3 #include 4 #include 5 #define lc ...
分类:
其他好文 时间:
2015-05-25 22:06:08
阅读次数:
148
区间更新
区间求和
思想:懒处理,对于区间更新不需要将更新具体到叶子结点,只在需要更新的时候,再细化处理。代码:import java.util.Scanner;class SegmentTree{
class Node{
int left;
int right;
long sum;
long addValue;
}...
分类:
其他好文 时间:
2015-05-23 20:08:05
阅读次数:
130
区间更新和查询
区间更新要延迟更新,就是当某结点完全处于要更新的区间之中时,我们只更新到该结点,并把其子结点要更新的值记录在本结点,当要向下更新或查询时再进行更新
#include
#include
//typedef long long ll;
typedef __int64 ll;
#define N 100005
struct Node{
int l,r;
ll sum,add;
}...
分类:
其他好文 时间:
2015-05-15 20:00:59
阅读次数:
125
也是区间更新,但这道题数据范围太大,要离散化
离散化即把涉及到的数字都记录下来,重新排过序后再用记录下来的下标作为其值,当使用其值进行比较时就可以根据下标找到对应的值
这里用了set判重,set是用insert插入的,而queue和stack都是用push插入值
#include
#include
#include
using namespace std;
#define N 10005
s...
分类:
其他好文 时间:
2015-05-15 19:58:59
阅读次数:
149
题目大意:
给定一个N*N*N多维数据集A,其元素是0或是1。A[i,j,k]表示集合中第 i 行,第 j 列与第 k 层的值。
首先由A[i,j,k] = 0(1 <= i,j,k <= N)。
给定两个操作:
1:改变A[i,j,k]为!A[i,j,k]。
2:查询A[i,j,k]的值。
思路:
三维树状数组区间更新、单点查询。更新区间(a,b)时,在 a 和 b+1 处都加1,前边表示增加1,后边是
抵消加1操作,最后询问时,用Query(x) % 2 即为单点的值(0或1)。三维区间更新,要注意区...
分类:
编程语言 时间:
2015-05-13 12:51:36
阅读次数:
187