zoukankan      html  css  js  c++  java
  • 线段树板子

    # include <cstdio>
    # include <algorithm>
    
    # define N 100010
    
    int a [N] ;
    int vmax [N << 2] ;
    
    void build ( int o, int lf, int rg )  {
    	if ( lf == rg )  {
    		vmax [o] = a [lf] ;
    		return ;
    	}
    
    	int mid = ( lf + rg ) >> 1 ;
    	build ( o * 2, lf, mid ) ;
    	build ( o * 2 + 1,  mid + 1, rg ) ;
    	
    	vmax [o] = std :: max ( vmax [o * 2], vmax [o * 2 + 1] ) ;
    }
    
    int query ( int o, int lf, int rg, const int L, const int R )  {
    	if ( L <= lf && rg <= R )  {
    		return vmax [o] ;
    	}
    	int mid = ( lf + rg ) >> 1 ;
    	int rt = -0x3f3f3f3f ;
    	if ( L <= mid )  rt = std :: max ( rt, query ( o * 2, lf, mid, L, R ) ) ;
    	if ( R > mid )  rt = std :: max ( rt, query ( o * 2 + 1, mid + 1, rg, L, R ) ) ;
    	return rt ;
    }
    
    void modify ( int o, int lf, int rg, const int pos, const int val )  {
    	if ( lf == rg )  {
    		vmax [o] = val ;
    		return ;
    	}
    	int mid = ( lf + rg ) >> 1 ;
    	if ( pos <= mid )  modify ( o * 2, lf, mid, pos, val ) ;
    	if ( pos > mid )  modify ( o * 2 + 1, mid + 1, rg, pos, val ) ;
    	
    	vmax [o] = std :: max ( vmax [o * 2], vmax [o * 2 + 1] ) ;
    }
    
    int main ( )  {
    	int n ;
    	scanf ( "%d", & n ) ;
    	for ( int i = 1 ; i <= n ; ++ i )  scanf ( "%d", a + i ) ;
    	
    	build ( 1, 1, n ) ;
    	int m ;
    	scanf ( "%d", & m ) ;
    	while ( m -- )  {
    		int opt ;
    		scanf ( "%d", & opt ) ;
    		if ( opt == 0 )  {
    			int l, r ;
    			scanf ( "%d%d", & l, & r ) ;
    			printf ( "%d
    ", query ( 1, 1, n, l, r ) ) ;
    		}  else  {
    			int pos, val ;
    			scanf ( "%d%d", & pos, & val ) ;
    			modify ( 1, 1, n, pos, val ) ;
    		}
    	}
    }
    

      

  • 相关阅读:
    co模块总结
    Promise总结
    webpack错误Chunk.entry was removed. Use hasRuntime()
    jquery validate用法总结
    node命令行开发
    animation总结
    formData使用总结
    vue-resource发送multipart/form-data数据
    keil中使用Astyle格式化你的代码的方法-keil4 keil5通用
    tcpip入门的网络教程汇总
  • 原文地址:https://www.cnblogs.com/ganster/p/8416856.html
Copyright © 2011-2022 走看看