hdu-1698-Just a Hook-线段树-区域更新,区域查询
来源:互联网 发布:路由器对网络稳定性 编辑:程序博客网 时间:2024/06/02 07:30
flag[i]:标记i这个区间的值。
val[i]:i这个区间的长度
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<math.h>using namespace std;#define INF 99999999#define lmin 1#define rmax n#define lson l,(l+r)/2,rt<<1#define rson (l+r)/2+1,r,rt<<1|1#define root lmin,rmax,1#define maxn 110000int flag[maxn*4];int val[maxn*4];void push_up(int rt){ if(flag[rt<<1]==flag[rt<<1|1]) flag[rt]=flag[rt<<1];}void push_down(int rt){ if(flag[rt]) { flag[rt<<1]=flag[rt<<1|1]=flag[rt]; flag[rt]=0; }}void creat(int l,int r,int rt){ flag[rt]=1; val[rt]=r-l+1; if(l!=r) { creat(lson); creat(rson); }}void update(int ll,int rr,int x,int l,int r,int rt){ if(rr<l||ll>r)return; if(ll<=l&&rr>=r) { flag[rt]=x; return; } push_down(rt); update(ll,rr,x,lson); update(ll,rr,x,rson); push_up(rt);}int query(int ll,int rr,int l,int r,int rt){ if(rr<l||ll>r)return 0; if(ll<=l&&rr>=r&&flag[rt]) { return flag[rt]*val[rt]; } return query(ll,rr,lson)+query(ll,rr,rson);}int main(){ int T,cas,n,l,r,x,q; scanf("%d",&T); cas=0; while(T--) { cas++; scanf("%d",&n); creat(root); scanf("%d",&q); while(q--) { scanf("%d%d%d",&l,&r,&x); update(l,r,x,root); } printf("Case %d: The total value of the hook is %d.\n",cas,query(1,n,root)); } return 0;}
0 0
- hdu-1698-Just a Hook-线段树-区域更新,区域查询
- hdu 1698 Just a Hook 线段树区域更新
- HDU 1698 Just a Hook [线段树-成段更新]
- HDU 1698 Just a Hook 线段树区间更新
- hdu 1698 Just a Hook(线段树 成段更新)
- 线段树(区间更新) hdu-1698-Just a Hook
- hdu 1698(区间更新线段树)Just a Hook
- 线段树 [成段更新] HDU 1698 Just a Hook
- hdu 1698 Just a Hook(线段树-区间更新)
- hdu 1698 Just a Hook 线段树区间更新
- hdu 1698 Just a Hook 线段树 成段更新
- HDU 1698 Just a Hook (线段树区间更新)
- HDU-1698-Just a Hook(线段树 区间更新)
- HDU 1698 Just a Hook (线段树区间更新)
- hdu 1698 Just a Hook 线段树区间更新
- HDU 1698 Just a Hook(线段树区间更新)
- HDU 1698 Just a Hook (线段树区间更新)
- HDU 1698 Just a Hook(线段树区间更新)
- Linux下的mysql命令
- oracle安装
- 黑马程序员_多线程及单例模式
- 日本人的选择
- 变量类型
- hdu-1698-Just a Hook-线段树-区域更新,区域查询
- treeview绑定xml数据
- LeetCode: Merge Intervals [055]
- Maven创建Mina项目的目录
- Android恢复出厂设置流程分析【Android源码解析十】
- android使用XML-----DOM
- 有两个按钮的wxWidgets小程序
- hdu-1540-Tunnel Warfare-线段树
- linux环境下嵌入式开发常用工具安装