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 ...
随机推荐
- linux环境下安装php扩展
本文只提供源码安装的方法(已安装pcntl为例) 其他方法请参考:http://doc3.workerman.net/appendices/install-extension.html 1.利用php ...
- 下载APP 2个二维码合并到一个二维码
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 在Windows下不使用密码远程登陆Linux
在登陆Linux进行管理的时候我们通常会使用用户名和密码进行登陆,这样一来是比较麻烦,二来是不安全,为了解决这个问题,我们可以使用公私钥 (public keys和private keys)进行认证. ...
- Python学习_数据处理split方法
用open方法导入文件“sketch.txt”后,用split()方法进行分割: >>> import os >>> os.chdir('C:/Python33/H ...
- xcopy总是询问是文件名还是目录名
我需要运行类似xcopy /y a.xml .\pics\b.xml很多次,但xcopy总是问我“文件名还是目录名” 可以这样通过管道来做echo f | xcopy /y a.xml .\pics\ ...
- Unity给力插件之MegaFiers
这是一个关于网格变形的插件.其中有非常多的功能. 这是它的API地址:http://www.west-racing.com/mf/ 花了2天的时间实践并整理了其中绝大多数的功能,只有一些关于特殊格式的 ...
- 寡人写的第一个HTML5页面
好吧,其实是抄来的 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> &l ...
- [原博客] POJ 1740 A New Stone Game
题目链接题意:有n堆石子,两人轮流操作,每次每个人可以从一堆中拿走若干个扔掉(必须),并且可以从中拿走一些分到别的有石子的堆里(可选),当一个人不能拿时这个人输.给定状态,问是否先手必胜. 我们参考普 ...
- websql
http://blog.darkcrimson.com/2010/05/local-databases/ http://www.oschina.net/question/12_26204 webkit ...
- MIME
http://www1.huachu.com.cn/read/readbookinfo.asp?sectionid=1000000558 http://www.jb51.net/hack/10623. ...