题目传送:A Simple Problem with Integers
思路:线段树,成段增减,区间求和,注意延迟标记需要累加,还有会爆int
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2015-05-15 09:11:33
阅读次数:
106
题目传送:Just a Hook
思路:线段树,成段替换, 区间求和。成段更新时,注意延迟标记的作用,它就是用来暂停往下更新来达到节省时间的,然后每次更新每个节点的子节点之前都要判断是否需要往下更新。
AC代码:
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-05-14 22:02:43
阅读次数:
115
分析:线段树的应用,区间修改,使用延迟标记进行延迟修改。
#include
using namespace std;
#define N 100010
class SegmentTree
{
private:
struct Node
{
int left,right; //左右子节点
int sum; //区间和
int lazy; ...
分类:
其他好文 时间:
2015-05-03 16:06:09
阅读次数:
126
H - Can you answer these queries?
Time Limit:2000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64u
Submit Status Practice HDU 4027
Description
A lot of battleships of evil are arranged in a ...
分类:
其他好文 时间:
2015-04-07 09:57:12
阅读次数:
169
E - Just a Hook
Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit Status Practice
Description
In the game of DotA, Pudge’s meat hook is actually the most horrible thing...
分类:
其他好文 时间:
2015-04-05 09:12:34
阅读次数:
293
萌萌哒的传送门
/*
* hdu 1698
* 线段树的点的成段更新
* 这道题不用预先建树,只需把1号节点延迟标记下就行
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ls u << 1
#define rs u << 1...
分类:
其他好文 时间:
2015-02-13 13:29:07
阅读次数:
135
萌萌哒的传送门
这道题目是线段树区间成段更新的应用,我们只需在建立线段树时从原来的左右儿子不相连,改为相连即可以解决此类问题.
如从原来的[l,mid] , [mid + 1,r] 改为 [l,mid],[mid,r]即可;
/*********************
* zoj1610 *
* 线段树的区间成段更新
* 延迟标记...
分类:
其他好文 时间:
2015-02-13 09:20:57
阅读次数:
159
题目连接:http://poj.org/problem?id=3468线段树功能:update:成段增减 query:区间求和。分析:需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候。#include#include#i...
分类:
其他好文 时间:
2015-01-21 23:55:40
阅读次数:
204
http://acm.hdu.edu.cn/showproblem.php?pid=1698
实现求全部区间的和 ,修改部分区间的值。
成段更新需要用到懒惰标记 lazy。简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候。延迟标记的意思是:这个区间的左右儿子都需要被更新,但是当前区间已经更新了。
#include
#inc...
分类:
其他好文 时间:
2015-01-20 20:36:55
阅读次数:
233
就像那个大神说的,区间更新算是一个坎吧。 其实就是延迟标记。平时如果我们更新一个区间的话,从上往下都更新一遍,但是那样会很慢,所以直接给这个区间做个标记,表示有更新,那么当下一次询问或更新 这个区间的一部分时,再把这个区间标记取消,并且更新他的子集。 例题: HDU 1698 题解请单击。...
分类:
其他好文 时间:
2015-01-07 20:35:57
阅读次数:
137