#include <stdio.h>
#include <string.h>
#include <math.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int MM=;//10^6
int num[MM<<];
void buildtree(int l,int r,int id)
{
if(l==r)
{scanf("%d",&num[id]);return;}
else
{
int mid=(r+l)>>;
buildtree(l,mid,id<<);
buildtree(mid+,r,id<<|);
}
num[id]=min(num[id<<],num[id<<|]); }
int query(int L,int R,int l,int r,int id)
{
int minn=0x7fffffff;
if (L <= l && r <= R) {
return num[id];
}
else {
int mid=(r+l)>>;
if(L<=mid)minn=min(minn,query(L,R,l,mid,id<<));
if(R>mid)minn=min(minn,query(L,R,mid+,r,id<<|));
num[id]=min(num[id<<], num[id<<|]);
return minn;
}
}
void change(int pos,int e,int l,int r,int id)
{
if(l==r)
{num[id]=e;return;}
else
{
int mid=(r+l)>>;
if(pos<= mid)
change(pos,e,l,mid,id<<);
else change(pos,e,mid+,r,id<<|);
}
num[id]=min(num[id<<],num[id<<|]); }
int main(){
int i,n,que,number,x,y,z;
n=;
while(n--)
{
cin>>number;
buildtree(,number,);
cin>>que;
//cout << "ok" << endl;
for(i=;i<que;i++)
{
scanf("%d%d%d",&x,&y,&z);
//cout << x << " " << y << " " << z << endl;
if(x==)
{
int ans=query(y,z,,number,);
printf("%d\n",ans );
}
else change(y,z,,number,);
} }
return ;
}

HIHO 线段树(单点)的更多相关文章

  1. HDU 1754 I Hate It 线段树单点更新求最大值

    题目链接 线段树入门题,线段树单点更新求最大值问题. #include <iostream> #include <cstdio> #include <cmath> ...

  2. HDU 1754 I Hate It(线段树单点替换+区间最值)

    I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...

  3. HDU 1166 敌兵布阵(线段树单点更新)

    敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...

  4. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)

    题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  5. HDU 1754 线段树 单点跟新 HDU 1166 敌兵布阵 线段树 区间求和

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. HDU 1166 敌兵布阵(线段树单点更新,板子题)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  7. POJ 1804 Brainman(5种解法,好题,【暴力】,【归并排序】,【线段树单点更新】,【树状数组】,【平衡树】)

    Brainman Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10575   Accepted: 5489 Descrip ...

  8. HDU 1166 敌兵布阵(线段树单点更新,区间查询)

    描述 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...

  9. POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)

    POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和) 题意分析 卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果.卡卡很喜欢苹果.树上有N个节点,卡卡给他们编号1到N,根 ...

随机推荐

  1. settings.xml

    <settings> <!--本地仓库.该值表示构建系统本地仓库的路径.其默认值为~/.m2/repository,windows:C:/Users/Administrator/.m ...

  2. centos7.1-64bit安装qtcreator

    首先,启用 EPEL Repository: yum -y install epel-release 启用 EPEL Repository 後, 可以用 yum 直接安裝qtcreator: yum ...

  3. asp.net 父窗体获取子窗体的返回值,可用来对父窗体局部更新

    今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件 从图1中我们可以看到,只用到了 ...

  4. vc6

    适合win7使用的: http://pan.baidu.com/s/1nt7SG57

  5. LInux ugo权限详解[修]

    Linux 中的用户和组是用来控制使用者或者进程可以或者不可以使用哪些资源和硬件,是Linux权限控制最基本的方式. 用户和组可以看一下上一章的部分,先来看一下权限. 一.权限概览 在Linux下,使 ...

  6. STM32/GD32上内存堆栈溢出探测研究

    无数次遭受堆栈溢出折磨,随着系统变得复杂,故障点越来越难以查找!主要溢出情况如下:1,一般RAM最后两块空间是堆Heap和栈Stack,堆从下往上用,栈从上往下用,任意一个用完,都会进入对方的空间2, ...

  7. DateFormat 中间加别的字符

    private static DateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

  8. 分布式算法一——一致性hash算法

    摘自:http://blog.csdn.net/sparkliang/article/details/5279393

  9. 【Java】ServerSocket的学习笔记

    公司有本<Java网络编程>一直闲置在书架上,反正我对Socket方面不太懂,今天跟着书学习一番. > 参考的优秀书籍 <Java网络编程> --中国电力出版社 > ...

  10. 网络文件常常提到类似"./run.sh"的数据,这个命令的意义是什么?

    由于命令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin./usr/bin 等为正规),此时要执行命令就得要严格指定该执行文件."./" ...