使用线段树更新每段区间的奖(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 (线段树区间更新)

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

  2. 暑期训练狂刷系列——Hdu 1698 Just a Hook (线段树区间更新)

    题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目大意: 有一个钩子有n条棍子组成,棍子有铜银金三种组成,价值分别为1,2,3.为了对付每场 ...

  3. hdu 1698:Just a Hook(线段树,区间更新)

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

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

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

  5. hdu 1698 Just a Hook(线段树之 成段更新)

    Just a Hook                                                                             Time Limit: ...

  6. hdu 1698 Just a Hook(线段树基础)

    成段更新的线段树,加入了延时标记............ 线段树这种东西细节上的理解因人而异,还是要自己深入理解......慢慢来 #include <iostream> #include ...

  7. hdu 1698 Just a Hook 【线段树+lazy】

    题目 写了一天的线段树,这道题主要说明一下sum是赋值的,不是累加的,并且在push_down的时候lazy也是赋值的.因可能对懒标记的理解还不是很透彻吧. #include <iostream ...

  8. HDU 1698 Just a Hook (线段树)

    Problem Description In the game of DotA, Pudge’s meat hook is actually the most horrible thing for m ...

  9. HDU 1698——Just a Hook——————【线段树区间替换、区间求和】

    Just a Hook Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit  ...

  10. HDU 1698 Just a Hook(线段树区间覆盖)

    线段树基本操作练习,防手生 #include <cstdio> #include <cstring> #include <cstdlib> #define lson ...

随机推荐

  1. python 3:str.upper()与str.lower()(使字符串字母全部大写或小写)

    name = "Hello,World! Hello,Python!" print(name.upper()) #字母全部大写 print(name.lower()) #字母全部小 ...

  2. 使用javac编译java文件

    过程中遇到的几个问题记录如下: 1.java -version正常显示java版本,但是javac却显示[不是内部外部命令] 原因:JAVA_HOME设置成了用户环境变量,Path里用%JAVA_HO ...

  3. T - Amusing Joke(map)

    Problem description So, the New Year holidays are over. Santa Claus and his colleagues can take a re ...

  4. Django html页面 'ascii' codec can't encode characters in position 8-10: ordinal not

    用Django开发的页面,之前用的是python3.X,后来又换成python2.X后各种报错,编码问题,于是在所有python文件开头加了编码:#coding=utf-8 但是后来发现,有些文件加了 ...

  5. elasticsearch模板 template

    https://elasticsearch.cn/article/335 elasticsearch模板 template 可以考虑的学习点: mapping的 _default_类型 动态模板:dy ...

  6. BootStrap 资源包的下载和使用

    将附件中的包解压,放置webroot中,并在jsp页面中引用它们,即可以使用 bootstrap.rar (78.9 KB) 下载次数: 0

  7. W3C标准冒泡、捕获机制

    (一) 捕获和冒泡如何相互影响 我们来做几个任务吧! 有一个前提,#parent为标签,#child为子标签,他们是嵌套关系支线任务1 //捕获模式 document.getElementById(' ...

  8. 富文本wangEditor的批量激活

    最近项目中使用了wangEditor这个轻量级的富文本框,由于需求是一个页面中会有多个富文本框同时激活,所以写了个批量激活的jquery方法,分享一下 // 激活富文本框 var wangEditor ...

  9. 前端HTML中float学习笔记

    float元素原本的作用是用来使文字包裹图片,现在人们更多的是用来进行布局(ps:有没有点滥用的意思) 也就是说本来你排好的界面设计,但是因为浮动会导致元素脱离文档流,使得其他非浮动的块级元素会无视这 ...

  10. asp.net 正则表达式 得到图片url 得到汉字

    //取图片            MatchCollection   matchs   =   Regex.Matches(AskText,@"<img\s[^> ]*src=( ...