使用线段树更新每段区间的奖(1,2,3),最后在统计整段区间的数和,基本线段树,果断1A啊

#include<iostream>
#include<stdio.h>
using namespace std;
#define N 100000
struct node{int l,r,p;
}a[N*4];
int n;
void build(int left,int right,int i){a[i].l=left;a[i].r=right;a[i].p=1;if(a[i].l==a[i].r){return ;}int mid=(a[i].l+a[i].r)>>1;build(left,mid,i*2);build(mid+1,right,i*2+1);
//    a[i].p=a[i*2].p+a[i*2+1].p;
}
void updata(int left,int right,int i,int p){if(left==a[i].l&&a[i].r==right){a[i].p=p;return ;}if(a[i].p>=1){a[i*2].p=a[i].p;a[i*2+1].p=a[i].p;a[i].p=-1;}int mid=(a[i].l+a[i].r)>>1;if(mid>=right)updata(left,right,i*2,p);else if(mid<left)updata(left,right,i*2+1,p);else{updata(left,mid,i*2,p);updata(mid+1,right,i*2+1,p);}//   a[i].p=a[i*2].p+a[i*2+1].p;
}
int ans=0;
void sum(int i){//   cout<<a[i].l<<" "<<a[i].r<<" "<<a[i].p<<endl;if(a[i].p!=-1){ans+=a[i].p*(a[i].r-a[i].l+1);return ;}sum(i*2);sum(i*2+1);}
int main(){int t,s,x,y,z;scanf("%d",&t);int cou=1;while(t--){scanf("%d %d",&n,&s);build(1,n,1);while(s--){scanf("%d%d%d",&x,&y,&z);updata(x,y,1,z);}ans=0;sum(1);printf("Case %d: The total value of the hook is %d.\n",cou++,ans);}
}

hdu 1698 Just a Hook 基本线段树相关推荐

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

    题意: 屠夫是Dota中一个令所有英雄闻风丧胆的英雄.他有一个很长的钩子,这个钩子是用铜做的(刚刚开始都是1),现在他想要更改这些钩子,把某个区间的钩子改为金.银或铜. 输入 L, R, X 表示把 ...

  2. hdu 1698 Just a Hook(线段树区间修改)

    传送门:Just a Hook Problem Description In the game of DotA, Pudge's meat hook is actually the most horr ...

  3. HDOJ 1698 Just a Hook(线段树成段更新)

    题意: 屠夫的钩子区间是1~n,每段可能由铜,银,金组成,价值分别为1,2,3,进行一系列的更新之后,求钩子的总价值. 思路: 线段树的成段更新:要设置一个临时的线段树,每次更新的时候把更新段的值放在 ...

  4. 线段树专辑——hdu 1698 Just a Hook

    http://acm.hdu.edu.cn/showproblem.php?pid=1698 这是一个区间染色的问题,对于区间染色问题,通常的方法是在线段树中定义一个cover域,当cover的值为- ...

  5. hdu 1698 Just a Hook 线段树区间更新

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 Let us number the consecutive metallic sticks of ...

  6. hdu 1698 Just a Hook(线段树区间更新·经典)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1698 数据:case,n,q,q行x,y,z.在长度为n的hook上进行q次区间更新,把它们的价值改变.最 ...

  7. 【HDU - 1698】 Just a Hook(线段树模板 区间覆盖更新(laz标记) + 区间和查询 )

    题干: In the game of DotA, Pudge's meat hook is actually the most horrible thing for most of the heroe ...

  8. HDU 1698 Just a Hook (线段树区间修改+区间查询)

    题目链接: 传送门 题意:Pudge对装备钩子进行若干次的强化,强化分为三种分别对应的价值是1,2,3,在经历过若干次操作后,输出钩子对应的总价值,每次强化都是对钩子进行区间修改 解题思路:在明白了题 ...

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

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

  10. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)

    链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...

最新文章

  1. Oracle 11g密码过期问题解决方案
  2. sql 只取一条记录_后端程序员必备:书写高质量SQL的30条建议
  3. vs转eclipse之工具快速上手篇
  4. mysql left day 7_day7-mysql函数
  5. Android在 普通类(非Activity,多数为Adapter) 中 传输数据为空值 解决方法 :在startActivity 用 intent传输数据
  6. 机器学习硕士、博士如何自救?
  7. Js中Proxy对象
  8. 通过人脸测试心率和呼吸率
  9. cad完全卸载教程_AutoCAD 2019 如何卸载,彻底卸载CAD教程
  10. Docker contanier comunication with route
  11. python程序设计简明教程第二版答案_Python简明教程精编.pdf
  12. C语言——蔡勒(Zeller)公式的使用
  13. 手把手教你领取永久免费服务器
  14. java实现Blowfish算法加密解密
  15. kafka craft 尝鲜
  16. 喜讯!湖南云畅网络科技有限公司成为百度核心生态伙伴! 共建智慧交通新生态
  17. Spring Cloud Gateway实战之三:动态路由
  18. flink sql 如何upsert 到一张hologres表中
  19. 移植Linux-3.4.2过程学习笔记1——串口打印乱码问题
  20. 用python分析NBA联盟球员信息,才知道这些秘密!

热门文章

  1. ERwin 正向工程
  2. 深入理解计算机系统(1)--hello world程序的生命周期
  3. 解决!Gallery中嵌套ListView,Gallery不能滑动的问题
  4. DataGrid实现单选功能,将DataGrid绑定的单选钮放在一个组里
  5. JavaFX 记录刚刚接触JavaFX遇到的问题
  6. UEA1224——郭恩赐 day06 作业
  7. 数据结构与算法(四)-线性表之循环链表
  8. 图片延迟加载(lazyload)的实现原理
  9. 应用安全的重要性!再怎么强调都不过分的5大理由
  10. 国内电影发行公司简介