• HIHO 线段树(单点)


     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <math.h>
     4 #include <iostream>
     5 #include <algorithm>
     6 using namespace std;
     7 const int MM=1000000;//10^6
     8 int num[MM<<2];
     9 void buildtree(int l,int r,int id)
    10 {
    11     if(l==r)
    12         {scanf("%d",&num[id]);return;}
    13     else
    14     {
    15         int mid=(r+l)>>1;
    16         buildtree(l,mid,id<<1);
    17         buildtree(mid+1,r,id<<1|1);
    18     }
    19     num[id]=min(num[id<<1],num[id<<1|1]);
    20 
    21 }
    22 int query(int L,int R,int l,int r,int id)
    23 {
    24     int minn=0x7fffffff;
    25     if (L <= l && r <= R) {
    26         return num[id];
    27     } 
    28     else {
    29         int mid=(r+l)>>1;
    30         if(L<=mid)minn=min(minn,query(L,R,l,mid,id<<1));
    31         if(R>mid)minn=min(minn,query(L,R,mid+1,r,id<<1|1));
    32         num[id]=min(num[id<<1], num[id<<1|1]);
    33         return minn;
    34     }
    35 }
    36 void change(int pos,int e,int l,int r,int id)
    37 {
    38     if(l==r)
    39         {num[id]=e;return;}
    40     else
    41     {
    42         int mid=(r+l)>>1;
    43         if(pos<= mid)
    44             change(pos,e,l,mid,id<<1);
    45         else change(pos,e,mid+1,r,id<<1|1);
    46     }
    47     num[id]=min(num[id<<1],num[id<<1|1]);
    48 
    49 }
    50 int main(){
    51     int i,n,que,number,x,y,z;
    52     n=1;
    53     while(n--)
    54     {
    55         cin>>number;
    56         buildtree(1,number,1);
    57         cin>>que;
    58         //cout << "ok" << endl;
    59         for(i=0;i<que;i++)
    60         {
    61             scanf("%d%d%d",&x,&y,&z);
    62             //cout << x << " " << y << " " << z << endl;
    63             if(x==0)
    64             {
    65                 int ans=query(y,z,1,number,1);
    66                 printf("%d
    ",ans );
    67             }
    68             else change(y,z,1,number,1);
    69         }
    70 
    71     }
    72  return 0;
    73 }
  • 相关阅读:
    shell test条件检查
    Mysql 创建只读账户
    cmd 批处理创建 IIS 站点
    Linux date获取时间戳
    数据结构与算法面试题80道(25)
    数据结构与算法面试题80道(24)
    数据结构与算法面试题80道(23)
    数据结构与算法面试题80道(22)
    数据结构与算法面试题80道(21)
    数据结构与算法面试题80道(20)
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/4135587.html
Copyright © 2020-2023  润新知