#include<stdio.h>

#define N 100100

struct node {

int x,y,yanchi;

}a[N*4];//注意数组范围

void build(int t,int x,int y) {

a[t].x=x;

a[t].y=y;

a[t].yanchi=1;

if(x==y)

return ;

int temp=t<<1;

int mid=(x+y)/2;

build(temp,x,mid);

build(temp+1,mid+1,y);

}

void update(int t,int x,int y,int z) {

if(a[t].yanchi==z)

return ;

if(a[t].x==x&&a[t].y==y) {

a[t].yanchi=z;

return ;

}

int temp=t<<1;

if(a[t].yanchi!=-1) {

a[temp].yanchi=a[temp+1].yanchi=a[t].yanchi;

a[t].yanchi=-1;

}

int mid=(a[t].x+a[t].y)/2;

if(x>mid) 

update(temp+1,x,y,z);

else

if(y<=mid)

update(temp,x,y,z);

else {

update(temp,x,mid,z);

update(temp+1,mid+1,y,z);

}

return ;

}

__int64 qury(int t) {

if(a[t].yanchi!=-1)

return (a[t].y-a[t].x+1)*a[t].yanchi;

else

return qury(t*2)+qury(t*2+1);

}

int main() {

int t,i,j,k,n,m,count=0;

scanf("%d",&t);

while(t--) {

scanf("%d",&n);

scanf("%d",&m);

build(1,1,n);

while(m--) {

scanf("%d%d%d",&i,&j,&k);

update(1,i,j,k);

}

printf("Case %d: The total value of the hook is %I64d.\n",++count,qury(1));//注意结果大小

}

return 0;

}

hdu 1698区间延迟更新的更多相关文章

  1. HDU 1698 区间更新

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. hdu 1556 线段树区间延迟更新好题

    656mS #include<stdio.h> #include<stdlib.h> #define N 110000 struct node { int x,y,yanchi ...

  3. poj3468区间延迟更新模板题

    #include<stdio.h> #include<string.h> #define N 100000 struct st{  int x,y;  __int64 yanc ...

  4. HDU 1698 Just a Hook(线段树区间替换)

    题目地址:pid=1698">HDU 1698 区间替换裸题.相同利用lazy延迟标记数组,这里仅仅是当lazy下放的时候把以下的lazy也所有改成lazy就好了. 代码例如以下: # ...

  5. hdu 1698 线段数的区间更新 以及延迟更新

    先说说区间更新和单点更新的区别 主要的区别是搜索的过程 前者需要确定一个区间 后者就是一个点就好了 贴上两者代码 void updata(int i)//单点更新 { int l=stu[i].l; ...

  6. HDU 1698 Just a Hook (线段树区间更新)

    题目链接 题意 : 一个有n段长的金属棍,开始都涂上铜,分段涂成别的,金的值是3,银的值是2,铜的值是1,然后问你最后这n段总共的值是多少. 思路 : 线段树的区间更新.可以理解为线段树成段更新的模板 ...

  7. HDU(1698),线段树区间更新

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 区间更新重点在于懒惰标记. 当你更新的区间就是整个区间的时候,直接sum[rt] = c*(r- ...

  8. HDU 1698 Just a Hook(线段树/区间更新)

    题目链接: 传送门 Minimum Inversion Number Time Limit: 1000MS     Memory Limit: 32768 K Description In the g ...

  9. HDU 1698 Just a Hook(线段树成段更新)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目: Problem Description   In the game of DotA, P ...

随机推荐

  1. GC_CONCURRENT freed 循环不停打印日志

    打印类似如下语句: 03-07 19:21:49.562: D/dalvikvm(1677): GC_CONCURRENT freed 2859K, 20% free 12020K/15011K, p ...

  2. Android上的线程安全

    Thread-safe methods In some situations, the methods you implement might be called from more than one ...

  3. 16-1 WEB存储基本操作

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. solr 6.0 没有schema.xml未自动创建schema文件

    solr 6.0 没有schema.xml未自动创建schema文件 摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中 ...

  5. Java操作pdf: JarsperReport的简单使用

    在企业级应用开发中,报表生成.报表打印下载是其重要的一个环节.除了 Excel 报表之外,PDF 报表也有广泛的应用场景. 目前世面上比较流行的制作 PDF 报表的工具如下: iText PDF :i ...

  6. [BZOJ4815][CQOI2017]小Q的表格 数论+分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4815 题目中所给条件中的$(a,a+b)$和$(a,b)$的关系很瞩目. 然后大家都知道$ ...

  7. Android 给按钮添加监听事件

    在安卓开发中,如果要给一个按钮添加监听事件的话,有以下三种实现方式 1.方式一 public class MainActivity extends ActionBarActivity { @Overr ...

  8. .net mvc 运行监控和错误捕捉

    方法类 /// <summary> /// 运行监控类 /// </summary> [AttributeUsage(AttributeTargets.Class | Attr ...

  9. Codeforces_789C_(dp)

    C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  10. 实训day01 python基础

    一.编程语言 编程语言:可以被计算机所识别的表达方式. 编程:程序员通过编程语言将自己的想法编写出来,产生的结果就是包含字符的文件. 其中,只有程序在运行时,其中的字符才有特定的语法意义. 二.计算机 ...