hdu1698(线段树的区间替换)
#include <bits/stdc++.h> using namespace std; #define Maxn 1001000*4 struct Node{ int lt,rt,val; }A[Maxn]; int j = 1; void Build(int i,int lt,int rt){ A[i].lt = lt; A[i].rt = rt; A[i].val = 1; if( lt == rt ){ return ; } int mid = (lt+rt) >> 1; Build(i<<1,lt,mid); Build(i<<1|1,mid+1,rt); } void update(int i,int lt,int rt,int val){ if( A[i].val == val ){ return ; } if( A[i].lt == lt && A[i].rt == rt ){ A[i].val = val; return ; } if( A[i].val != -1 ){ A[i<<1].val = A[i<<1|1].val = A[i].val; A[i].val = -1; } if( rt <= A[i<<1].rt ){ update(i<<1,lt,rt,val); }else if( lt >= A[i<<1|1].lt ){ update(i<<1|1,lt,rt,val); }else{ update(i<<1,lt,A[i<<1].rt,val); update(i<<1|1,A[i<<1|1].lt,rt,val); } } int find(int i){ if( A[i].val != -1 ){ return ( (A[i].rt-A[i].lt+1)*A[i].val); }else{ return ( find(i<<1) + find(i<<1|1) ); } } int main(){ int T,N,a,b,c; cin >> T; while(T--){ scanf("%d",&N); Build(1,1,N); int n; scanf("%d",&n); while(n--){ scanf("%d%d%d",&a,&b,&c); update(1,a,b,c); } printf("Case %d: The total value of the hook is %d.\n",j++,find(1)); } }
hdu1698(线段树的区间替换)的更多相关文章
- hdu1698线段树的区间更新区间查询
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU1698 线段树(区间更新区间查询)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 1698-Just a Hook 线段树(区间替换)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu1698 线段树(区间更新~将区间[x,y]的值替换为z)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu1698 线段树区间更新
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并
D. Developing Game Pavel is going to make a game of his dream. However, he knows that he can't mak ...
- hiho一下20周 线段树的区间修改
线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...
- 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)
原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...
- poj 3468:A Simple Problem with Integers(线段树,区间修改求和)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 58269 ...
随机推荐
- rgba兼容IE系列
在容器里面如果用到opacity或者filter:opacity里面的内容也会被滤镜化 如果不想里面的内容也被滤镜化我们可以用rgba来处理或者用透明的背景图片. 兼容ie的rgba的写法 backg ...
- js 遍历json对象
//方法一: var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13} ...
- delphi发送html带附件邮件
var html: TIdText; begin if not SMTP.Connected then SMTP.Disconnect(); try SMTP.Connect; try if SMTP ...
- bzoj 2693: jzptab 线性筛积性函数
2693: jzptab Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 444 Solved: 174[Submit][Status][Discus ...
- 高级PHP应用程序漏洞审核技术
前言 PHP是一种被广泛使用的脚本语言,尤其适合于web开发.具有跨平台,容易学习,功能强大等特点,据统计全世界有超过34%的网站有php的应 用,包括Yahoo.sina.163.sohu等大型门户 ...
- 反射实体自动生成EasyUi DataGrid模板
用EasyUi Datagrid展示数据的时候总是要一下这样一段代码 <table id="dt" class="easyui-datagrid"> ...
- 需要插入子集的时候如何更新父级ID
场景模拟: 我们需要在不同的新闻站点中采集新闻信息, 所以需要在数据库中保存一个新闻站点表(Site) 一个新闻表(News) 两表之间的关系是 Site(1)-News(N) 数据库 ...
- 使用IRP进行文件操作
使用IRP进行文件操作 首先声明这个是菜鸟—我的学习日记,不是什么高深文章,高手们慎看. 一定要先感谢为技术的进步而付出辛勤汗水的人,感谢他们对技术的共享. 一个通用IRP访问文件的十六进制编辑器(开 ...
- ListView getView中放置多个item和getItemViewType的用法
ListView 和 Adapter 的基础 工作原理: ListView 针对List中每个item,要求 adapter “给我一个视图” (getView). 一个新的视图被返回并显示 如果我们 ...
- Android MediaPlayer状态机
对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态.椭圆代表MediaPlayer对象可能驻留的状态.弧线表示驱动M ...