/*

  */
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct P
{
int l,r,value;
int add;
}tr[];
void Pushup(int rt)
{
tr[rt].value=tr[rt<<].value+tr[rt<<|].value;
}
void build(int rt,int l,int r)
{
tr[rt].l=l;
tr[rt].r=r;
tr[rt].add=;
if(l==r)
{
tr[rt].value=;
return ;
}
int mid=(l+r)/;
build(rt<<,l,mid);
build(rt<<|,mid+,r);
Pushup(rt);
}
/*
区间修改,整体改成一个数,所以只需要记录这个数就可以了,区间的和可以用这个数乘以区间长度来求;
*/
void Pushdown(int rt)
{
if(tr[rt].add<=)
return ;
tr[rt<<].value=tr[rt].add*(tr[rt<<].r-tr[rt<<].l+);
tr[rt<<|].value=tr[rt].add*(tr[rt<<|].r-tr[rt<<|].l+);
tr[rt<<].add=tr[rt].add;
tr[rt<<|].add=tr[rt].add;
tr[rt].add=;
}
void Update(int rt,int l,int r,int begin,int end,int x)
{
if(begin<=l&&end>=r)
{
tr[rt].add=x;
tr[rt].value=x*(r-l+);//把区间更新成x
return ;
}
Pushdown(rt);
if(begin <=tr[rt<<].r)
{
Update(rt<<,l,tr[rt<<].r,begin,end,x);
}
if(end >=tr[rt<<|].l)
{
Update(rt<<|,tr[rt<<|].l,r,begin,end,x);
}
Pushup(rt);//区间下面的值发生变化,所以要pushup }
int main()
{
int T,k=;
scanf("%d",&T);
while(T--)
{
int n,q;
scanf("%d%d",&n,&q);
memset(tr,,sizeof(tr));
build(,,n);
for(int i=;i<q;i++)
{
int ll,rr,v;
scanf("%d%d%d",&ll,&rr,&v);
Update(,,n,ll,rr,v);
// for(int j=1;j<=25;j++)
// printf("%d:%d\n",j,tr[j].value);
}
int ans=tr[].value;
printf("Case %d: The total value of the hook is %d.\n",k++,ans);
}
return ;
}

最新文章

  1. 最快让你上手ReactiveCocoa之进阶篇
  2. SQL having 子句
  3. My roadway of compilers principles.
  4. 平衡二叉树,AVL树之图解篇
  5. PHP中的数组(一)
  6. jquery数字验证大小比较
  7. PHP memcache实现消息队列实例
  8. 推荐几款主流的Css Reset
  9. 获取bing图片并自动设置为电脑桌面背景(C++完整开源程序)
  10. 【 DCOS 】织云 CMDB 管理引擎技术详解
  11. ES6 new syntax of let and const (one)
  12. linux中一些简便的命令之sort
  13. URL https://i.cnblogs.com/EditPosts.aspx?opt=1
  14. 洛谷P4178 Tree (算竞进阶习题)
  15. PATH环境变量
  16. Java项目引用外部jar包时,使用bat启动
  17. Android SO动态调试之IDA
  18. Python相关在线文档手册地址
  19. 前端性能优化:Add Expires headers
  20. C# DataTable按指定列排序

热门文章

  1. SAP Cloud for Customer的Account Team里的role如何配置
  2. Spark Job调优(Part 2)
  3. Sublime +Markdown+OmniMarkupPreviewer 搭建实时预览的markdown编辑器
  4. 《队长说得队》第八次团队作业Alpha冲刺
  5. Dojo中的选择器
  6. Bootstrap历练实例:默认的列表组
  7. drf 频率组件 META字典详情
  8. python入门学习笔记1:Python与C的简单区别
  9. urllib、requests库整理
  10. 基于IAR6或者IAR7建立STM32开发工程(通过实际测试,使用IAR6.30.4)