给出N个节点,M次操作,和p

每次操作 对l-r区间的每一个节点+c,若节点值>=p,则加2*c;

结点存当前区间伤害最小值,最大值,以及lazy操作。更新到假设最小值大于等于P,或者最大值小于P为止。

#include "stdio.h"
#include "string.h" struct node
{
int l,r,Min,Max,lazy;
} data[800010];
int p; int Max(int a,int b)
{
if (a<b) return b;
else return a;
} int Min(int a,int b)
{
if (a<b) return a;
else return b;
} void build(int l,int r,int k)
{
int mid;
data[k].l=l;
data[k].r=r;
data[k].Min=data[k].Max=data[k].lazy=0; if (l==r) return ; mid=(l+r)/2; build(l,mid,k*2);
build(mid+1,r,k*2+1);
} void Pushdown(int k)
{
if (data[k].l==data[k].r) return ;
if (data[k].lazy!=0)
{
data[k*2].lazy+=data[k].lazy;
data[k*2].Max+=data[k].lazy;
data[k*2].Min+=data[k].lazy;
data[k*2+1].lazy+=data[k].lazy;
data[k*2+1].Max+=data[k].lazy;
data[k*2+1].Min+=data[k].lazy;
data[k].lazy=0;
}
}
void updata(int l,int r,int k,int op)
{
int mid;
if (data[k].l==l && data[k].r==r)
{
if (data[k].Max<p)
{
data[k].lazy+=op;
data[k].Max+=op;
data[k].Min+=op;
return ;
}
if (data[k].Min>=p)
{
data[k].lazy+=2*op;
data[k].Max+=2*op;
data[k].Min+=2*op;
return ;
} } Pushdown(k); mid=(data[k].l+data[k].r)/2; if (r<=mid) updata(l,r,k*2,op);
else if (l>mid) updata(l,r,k*2+1,op);
else
{
updata(l,mid,k*2,op);
updata(mid+1,r,k*2+1,op);
}
data[k].Max=Max(data[k*2].Max,data[k*2+1].Max);
data[k].Min=Min(data[k*2].Min,data[k*2+1].Min);
} void query(int k)
{
if(data[k].l==data[k].r)
{
if (data[k].l!=1)
printf(" %d",data[k].Max);
else
printf("%d",data[k].Max);
return ;
}
Pushdown(k);
query(k*2);
query(k*2+1);
} int main()
{
int n,m,l,r,x;
while (scanf("%d%d%d",&n,&m,&p)!=EOF)
{
build(1,n,1);
while (m--)
{
scanf("%d%d%d",&l,&r,&x);
updata(l,r,1,x);
}
query(1);
printf("\n");
}
return 0;
}

HDU 4107 线段树的更多相关文章

  1. hdu 5877 线段树(2016 ACM/ICPC Asia Regional Dalian Online)

    Weak Pair Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  2. hdu 3974 线段树 将树弄到区间上

    Assign the task Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. hdu 3436 线段树 一顿操作

    Queue-jumpers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. hdu 3397 线段树双标记

    Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  5. hdu 4578 线段树(标记处理)

    Transformation Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 65535/65536 K (Java/Others) ...

  6. hdu 4533 线段树(问题转化+)

    威威猫系列故事——晒被子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  7. hdu 2871 线段树(各种操作)

    Memory Control Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. hdu 4052 线段树扫描线、奇特处理

    Adding New Machine Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  9. hdu 1542 线段树扫描(面积)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

随机推荐

  1. [LeetCode226]Invert Binary Tree

    题目: Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 反转二叉树,左右儿子值交换 代码: / ...

  2. 图表引擎AChartEngine 二

    这几天项目涉及到android图表绘制,网上找的Demo都是大同小异,也就如上篇博文所写的一样是基本函数的实现.可是所有能找到的Demo都和设计图不符.木有办法,Leader发话啦,万不得已的情况下不 ...

  3. 王立平--怎么查看Unity的版本号

    1.打开Unity,Help->About Unity 2.版本

  4. sql取整函数

    SQL取整运算2009年04一个月02日本 星期四 10:01有使用说明这种方法记录,就在今天,那么当仍然被遗忘.事实上通常用四舍五入的操作有几种情况,一个是简单的四舍五入,无论是小数点后面的是什么都 ...

  5. (2) 用DPM(Deformable Part Model,voc-release4.01)算法在INRIA数据集上训练自己的人体检測模型

    步骤一,首先要使voc-release4.01目标检測部分的代码在windows系统下跑起来: 參考在window下执行DPM(deformable part models) -(检測demo部分) ...

  6. Base64编码和解码

    Base64这是一个二进制编码方法转换成可打印字符.主要用于邮件传输. Base64将64人物(A-Z,a-z,0-9,+,/)由于基本字符集.把所有的符号转换成字符集. 编码: 编码每次3节转为4字 ...

  7. Struts2之—实现自己的结果集的定义ajax

    项目中我们常常遇到这种需求--页面部分刷新.比如:加入用户,转到加入用户页面时,页面自己主动载入了全部部门. 完整流程:选择所属部门,填写username和password,点击"注冊&qu ...

  8. RH253读书笔记(8)-Lab 8 Securing Data

    Lab 8 Securing Data Goal: Gain familiarity with encryption utilities Sequence 1: Using SSH keys with ...

  9. [WebGL入门]四,渲染准备

    注意:文章翻译http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误,欢迎大家 ...

  10. DOM attributes and properties

    element :attributes : DOM objects : properties 一个是元素属性的叙述性说明,它是对象属性的叙述性说明 版权声明:本文博客原创文章,博客,未经同意,不得转载 ...