HIHO 线段树(单点)
#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 线段树(单点)的更多相关文章
- HDU 1754 I Hate It 线段树单点更新求最大值
题目链接 线段树入门题,线段树单点更新求最大值问题. #include <iostream> #include <cstdio> #include <cmath> ...
- HDU 1754 I Hate It(线段树单点替换+区间最值)
I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...
- HDU 1166 敌兵布阵(线段树单点更新)
敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...
- poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...
- HDU 1754 线段树 单点跟新 HDU 1166 敌兵布阵 线段树 区间求和
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 1166 敌兵布阵(线段树单点更新,板子题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- POJ 1804 Brainman(5种解法,好题,【暴力】,【归并排序】,【线段树单点更新】,【树状数组】,【平衡树】)
Brainman Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10575 Accepted: 5489 Descrip ...
- HDU 1166 敌兵布阵(线段树单点更新,区间查询)
描述 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...
- POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)
POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和) 题意分析 卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果.卡卡很喜欢苹果.树上有N个节点,卡卡给他们编号1到N,根 ...
随机推荐
- POJ 1260:Pearls(DP)
http://poj.org/problem?id=1260 Pearls Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8 ...
- POJ 2192 :Zipper(DP)
http://poj.org/problem?id=2192 Zipper Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1 ...
- C#:关联程序和文件
一.关联代码 /// <summary> /// 关联程序和类型 /// </summary> private void RegFileExt() { try { string ...
- jquery.rotate.js库中的rotate函数怎么用。
rotate是jQuery旋转rotate插件,支持Internet Explorer 6.0+ .Firefox 2.0 .Safari 3 .Opera 9 .Google Chrome,高级浏览 ...
- java产生随机数并求和
设计思路: 先随机生成10个数,组成一个数组,然后用消息框显示数组内容,然后用循环计算数组元素的和,将结果也显示在消息框中. 程序流程图: 源程序代码: import javax.swing.*; p ...
- Android 读取Assets中资源
//读取文件 private static String getFromAssets(Context context, String fileName) { String result = " ...
- Andorid 编程 系统环境安装
内网环境下安装: 1.配置源 :找到公司内部整理的源文件中的内容,将其内容拷贝到系统 源文件 中,并注释掉所有外网链接(如果公司支持内部环境配置,通常会有一个内部源文件) 2.安装jdk, ecli ...
- 手把手教你用C++ 写ACM自动刷题神器(冲入HDU首页)
转载注明原地址:http://blog.csdn.net/nk_test/article/details/49497017 少年,作为苦练ACM,通宵刷题的你 是不是想着有一天能够荣登各大OJ榜首,俯 ...
- TreeView 节点的显示,读取,操作
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq ...
- SHA1加密C#
//SHA1 static public string SHA1_Hash(string str_sha1_in) { SHA1 sha1 = new SHA1CryptoServiceProvide ...