博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
区间专题
阅读量:4982 次
发布时间:2019-06-12

本文共 956 字,大约阅读时间需要 3 分钟。

 

一. 区间最大最小值问题

  1. RMQ

int mx[N][20];                      //最多能保存524288的长度int RMQ(int l, int r)   {    int k = 0;  while (1<<(k+1) <= r - l + 1)   k++;        //令k为满足1<
<= r-l+1的最大整数 return max (mx[l][k], mx[r-(1<

  2. Segment_Tree

struct ST    {    int mx[N<<2];    void push_up(int rt)    {        mx[rt] = max (mx[rt<<1], mx[rt<<1|1]);    }    void build(int l, int r, int rt)    {        if (l == r)    {            scanf ("%d", &mx[rt]);    return ;        }        int mid = (l + r) >> 1;        build (lson);  build (rson);        push_up (rt);    }    int query(int ql, int qr, int l, int r, int rt)    {        if (ql <= l && r <= qr)    {            return mx[rt];        }        int mid = (l + r) >> 1, ret = 0;        if (ql <= mid)    ret = max (ret, query (ql, qr, lson));        if (qr > mid)    ret = max (ret, query (ql, qr, rson));        return ret;    }}st;

  

转载于:https://www.cnblogs.com/Running-Time/p/4824375.html

你可能感兴趣的文章
为何要学编程?如何学编程?用什么语言最好?有什么好书?
查看>>
剑指Offer的学习笔记(C#篇)-- 反转链表
查看>>
百度star2012初赛第一场的题目
查看>>
武汉第二十七天
查看>>
最长公共子序列
查看>>
MFC 鼠标去留
查看>>
【原创】关于oracle11G空表无法导出问题的解决方法
查看>>
16进制的简单运算
查看>>
速读《Javascript模式》(一)(简介、var的变量提升以及es6新规范的let)
查看>>
DM8168集成图像算法
查看>>
GDI编程小结
查看>>
nalply/crtmpserver
查看>>
jquery 遍历节点
查看>>
工具选择
查看>>
(转)C#实现RSA非对称加密解密
查看>>
迅为iTOP-4412开发板-Android4.4-固定MAC
查看>>
centos下,安装MySQL以及配置远程连接等
查看>>
获取硬盘和CPU的序列号
查看>>
Python全栈开发 day2 - 数据类型详解
查看>>
葡萄城报表的数据可视化分析
查看>>