解题思路:线段树区间更新水题。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 100005;
struct seg
{int l,r,sum,lazy;
}tree[maxn<<2];void build(int l,int r,int u)
{tree[u].l = l;tree[u].r = r;tree[u].lazy = 0;tree[u].sum = 0;if(l == r) return;int mid = (l + r) >> 1;build(l,mid,2*u);build(mid+1,r,2*u+1);
}void PushDown(int u)
{tree[2*u].sum = (tree[2*u].r - tree[2*u].l + 1) * tree[u].lazy;tree[2*u+1].sum = (tree[2*u+1].r - tree[2*u+1].l + 1) * tree[u].lazy;tree[2*u].lazy = tree[u].lazy;tree[2*u+1].lazy = tree[u].lazy;tree[u].lazy = 0;
}void PushUp(int u)
{tree[u].sum = tree[2*u].sum + tree[2*u+1].sum;
}void update(int l,int r,int u,int v)
{if(tree[u].l >= l && tree[u].r <= r){tree[u].sum = (tree[u].r - tree[u].l + 1) * v;tree[u].lazy = v;return;}if(tree[u].lazy) PushDown(u);int mid = (tree[u].l + tree[u].r) >> 1;if(l <= mid) update(l,r,u*2,v);if(r > mid) update(l,r,u*2+1,v);PushUp(u);
}int query(int l,int r,int u)
{if(tree[u].l >= l && tree[u].r <= r){return tree[u].sum;}int mid = (tree[u].l + tree[u].r) >> 1;int ans = 0;if(l <= mid) ans += query(l,r,2*u);if(r > mid) ans += query(l,r,2*u+1);return ans;
}int main()
{int t,cas = 1;scanf("%d",&t);while(t--){int n;scanf("%d",&n);build(1,n,1);for(int i = 1; i <= n; i++)update(i,i,1,1);int q,x,y,z;scanf("%d",&q);while(q--){scanf("%d%d%d",&x,&y,&z);update(x,y,1,z);}printf("Case %d: The total value of the hook is %d.\n",cas++,query(1,n,1));}return 0;
}

hdu 1698(线段树区间更新)相关推荐

  1. POJ 2777 ZOJ 1610 HDU 1698 --线段树--区间更新

    直接将这3题 放一起了  今天在做线段树的东西 这3个都是区间更新的 查询方式互相不同 反正都可以放到一起吧 直接先上链接了 touch me touch me touch me 关于涉及到区间的修改 ...

  2. hdu 3954(线段树区间更新)

    转载标记处:http://www.cnblogs.com/wang-jue/articles/2920341.html 思路:这道题所得到的经验与每个英雄的等级有关,一般的可能就用线段树一直更新到每一 ...

  3. hdu 5124(线段树区间更新+lazy思想)

    http://acm.hdu.edu.cn/showproblem.php?pid=5124 题意:区间覆盖次数问题. 解题思路:线段树水之. #include<iostream> #in ...

  4. hdu 5692 Snacks(dfs序+线段树区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5692 解题思路:这道题是树节点的点权更新,而且涉及到子树,常用的思路是利用dfs序,用线段树来对区间进 ...

  5. hdu 3966(树链剖分+线段树区间更新)

    传送门:Problem 3966 https://www.cnblogs.com/violet-acmer/p/9711441.html 学习资料: [1]线段树区间更新:https://blog.c ...

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

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 In the game of DotA, Pudge's meat hook is actual ...

  7. ZOJ 1610 Count the Colors (线段树区间更新)

    题目链接 题意 : 一根木棍,长8000,然后分别在不同的区间涂上不同的颜色,问你最后能够看到多少颜色,然后每个颜色有多少段,颜色大小从头到尾输出. 思路 :线段树区间更新一下,然后标记一下,最后从头 ...

  8. hihoCoder 1080 : 更为复杂的买卖房屋姿势 线段树区间更新

    #1080 : 更为复杂的买卖房屋姿势 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho都是游戏迷,"模拟都市"是他们非常喜欢的一个游戏 ...

  9. CodeForces - 272C Dima and Staircase (线段树区间更新)

    题意: 见以下样例,给出 5 个区间,每个区间的高度已知.一共 4 次操作.每次操作都是从最左边开始向下垒一个宽为 w 高为h 的木块,过程见下图. 问每次垒木块的高度是多少? Input 5 1 2 ...

最新文章

  1. 掩码语言模型(Masked Language Model)mlm
  2. 【题解】Luogu P1533 可怜的狗狗
  3. 2017.8.31 机器学习各种算法
  4. OpenStack的部署T版(八)——Dashboard
  5. [控件] LabelView
  6. MySQL学习笔记_10_MySQL高级操作(下)
  7. 自定义标题栏右键菜单
  8. 产品运营:当你和上级发生争执你会怎么处理?
  9. 表单提交后打印后台传过来的数据
  10. 让应用通过苹果审核出人头地的10个方法
  11. win7/64位下python2.7、easy_install安装经验
  12. 喜马拉雅下载成mp3方法
  13. unity 字体width_Unity制作自定义字体的两种方法
  14. AD7124读写驱动
  15. python项目报告模板_python接口自动化(五)--接口测试用例和接口测试报告模板(详解)...
  16. 练习题58:接口练习1:用接口、多态、方法来实现:麻雀会飞 鹦鹉会飞 鸵鸟不会飞 企鹅不会飞 直升飞机会飞
  17. 安卓AndroidStudio设计计算器实现简单的计算
  18. 用excel做logistic回归分析_用Excel做回归分析的详细步骤
  19. l完整的计算机系统,一个完整的计算机系统包括
  20. ligo 原理_在LIGO的实验中,Ubuntu被用来检测引力波

热门文章

  1. 案例丨神策数据赋能物流服务行业数字化转型
  2. How to change in the Cocos2d-x project from landscape to portrait both in iOS and Android
  3. 存储IOPS参数结合实例详解
  4. [转]T4模版引擎之生成数据库实体类
  5. PHP serialize JSON 解析
  6. Android用户界面设计学习之旅-第二站
  7. 项目中除了需求外还需要知道的问题
  8. 常用的正则表达式验证类
  9. 【转】C#Static类和Static构造函数
  10. vc2008中使用boost库