线段树--区间更新-区间查询HDU 1698
来源:互联网 发布:现场网络直播的含义 编辑:程序博客网 时间:2024/04/26 16:10
题意: 给钩子的价值更新,给出区间,查找区间价值
思路:加lazy标记,不必更新到每个子节点
#include <stdio.h>#include <math.h>#include <iostream>#include <algorithm>#define lson i<<1,left,mid#define rson i<<1|1,mid+1,rightusing namespace std;struct TreeNode{ int lazy,val,left,right,tag;} Tree[400005];void Build(int i , int left , int right ){ Tree[i].lazy=0; Tree[i].left=left; Tree[i].right=right; Tree[i].tag=0; if(left==right) { Tree[i].val=1; return ; } int mid=(left+right)>>1; Build(lson); Build(rson); Tree[i].val=Tree[i<<1].val+Tree[i<<1|1].val;}void update(int i,int left, int right , int w){ if(Tree[i].left==left && Tree[i].right ==right ) { Tree[i].tag=w; Tree[i].lazy=1; Tree[i].val=w*(right - left +1); return ; } int mid=(Tree[i].left+Tree[i].right)>>1; if(Tree[i].lazy==1) { Tree[i].lazy=0; update( i<<1,Tree[i].left,mid,Tree[i].tag); update(i<<1|1,mid+1,Tree[i].right,Tree[i].tag); Tree[i].tag=0; } if(right<=mid) { update(i<<1,left,right,w); } else if(left>mid) { update(i<<1|1,left,right,w); } else { update(lson,w); update(rson,w); } Tree[i].val=Tree[i<<1].val+Tree[i<<1|1].val;}int main(){ int x,y,z; int n; int m; int T; scanf("%d",&T); int iCase=0; while(T--) { iCase++; scanf("%d%d",&n,&m); Build(1,1,n); while(m--) { scanf("%d%d%d",&x,&y,&z); update(1,x,y,z); } printf("Case %d: The total value of the hook is %d.\n",iCase,Tree[1].val); } return 0;}
0 0
- 线段树--区间更新-区间查询HDU 1698
- hdu 5023(线段树区间更新+区间查询)
- 线段树--区间更新区间查询--hdu4027
- 线段树区间查询区间更新
- HDU 1698 Dota钩子问题-线段树-(区间更新,区间查询)
- 线段树(区间更新与区间查询)——Just a Hook ( HDU 1698 )
- HDU 1698 Just a Hook(线段树 区间更新 + 查询区间和)
- HDU 1698 Just a Hook(线段树:区间更新,区间查询)
- HDU 1698 区间更新线段树
- hdu 1698 线段树区间更新
- HDU 1698 【线段树区间更新】
- HDU 1698(线段树区间更新)
- hdu 1698 线段树 区间更新
- HDU 1698 线段树区间更新模板
- HDU 1698(线段树 区间更新)
- hdu 1698 线段树 区间更新
- HDU 1698(线段树区间更新)
- hdu 1698(线段树区间更新)
- Android6.0Framework源码解析系列[目录]
- Spring 用注解Annotation注入 abstract 抽象父类的属性
- 一个简单,强大的自定义广告活动弹窗
- lintcode 75 Find Peak Element
- 好用的网络请求库Retrofit2(入门及讲解)
- 线段树--区间更新-区间查询HDU 1698
- linux下的DNS配置(笔记)
- 随机森林简单例子
- POJ 1651 Multiplication Puzzle(区间dp)
- HDU (dfs)1016 Prime Ring Problem素数环
- while(1) persist in!
- 基于tcp和qt的简单聊天室搭建
- HDU-1222-Wolf and Rabbit【GCD】
- 线型算法(计算机图形学)