个人模板 ST表

c++反向 ST 表模板 *ST 表(Sparse Table,稀疏表)**是一种用于高效处理区间最值查询(RMQ,Range Minimum/Maximum Query)问题的数据结构。常规的 ST 表通常是预先处理出所有以某个位置为起点,长度为2k2^k2k的区间的最值,查询时通过拼接两个重叠的2k2^k2k长度的区间来得到任意区间的最值。而反向 ST 表与常规 ST 表不同,它存储的是以某个位置为终点,长度为2k2^k2k的区间的最值。在这个代码中,st[i][j]表示区间ii−2j1i。 阅读详情
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
int a[N];
int f[N][16];
int n;

void rmq_init() //建立:dp(i,j) = min{dp(i,j-1),dp(i+2^(j-1),j-1) O(nlogn)
{
    for (int i = 1; i <= n; i++)
        f[i][0] = a[i];
    int k = floor(log((double)n) / log(2.0)); //C/C++取整函数ceil()大,floor()小
    for (int j = 1; j <= k; j++)
        for (int i = 1; i <= n; i++)
        {
            if (i + (1 << (j - 1)) <= n) //f(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)
                f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);  ///改为 min 可求最小值
        }
}

int rmq(int i, int j) //查询:返回区间[i,j]的最小值
{
    int k = floor(log((double)(j - i + 1)) / log(2.0));
    return max(f[i][k], f[j - (1 << k) + 1][k]);  ///改为 min 可求最小值
}

int main()
{
    int icase = 0;
    while(scanf("%d", &n)!=EOF)
    {
        memset(a,0,sizeof(a));
        memset(f,0,sizeof(f));
        for (int i = 1; i <= n; i++)
            scanf("%d", &a[i]);
        rmq_init();
        int m;
        printf("Case %d:\n",++icase);
        scanf("%d",&m);
        for(int i = 0; i < m; i++)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            printf("%d\n",rmq(x,y));
        }
    }
}

OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存 近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin 阅读详情

相关推荐

数字通信:信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码

在通信系统中,信息的传输通常需要经过一系列的处理步骤,确保数据可以在信道中高效且可靠地传输。以下是信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码的具体含义及其常见技术的解释。

weixin_44012667的博客 4806

蓝桥之素数回文基础掌握 (Java)

/* * 该题模板适用广泛:可计算素数的,回文,求解回文素数个数,及各种相似变形题 * */ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int a=...

知迷鸟的博客 275

STM32移植LVGL(LittleVGL)

**STM32移植LVGL(LittleVGL)**

qq_53000374的博客 1万+

ST表(模板)

//预处理复杂度同为O(nlogn),查询时间上,ST表为O(1),线段树为O(logn) #include<bits/stdc++.h> using namespace std; const int N=5e4+10; int a[N];//原始输入数组 //st表,表示需要查询的数组的从下标i到下标i+2^j-1的最值 int mx[N][30];//最大值 int mn[N][30];//最小值 //预处理 void init(int n) { for(int i=1;i.

qq_44866969的博客 2005

TM1621/HT1621 段码LCD驱动器

TM1621 LCD 驱动器

qq_45325304的博客 1万+

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

代码编写规则

我觉得这个应该有点用吧; 好就之前的,小白就看下吧,做个了解;

知迷鸟的博客 264

合成生物学中试:花钱只是开始,烧钱才是常态

2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。

AIexander的博客 942

nefu暑假集训2 ST表 个人模板+例题汇总

前言:比较简单的一个算法了,原理相当于是用二进制优化的区间dp了,用于求一个区间的最大或最小值。其实这类问题一般用线段树就可以直接解决,但如果查询次数过多的话可能会超时,这时就是ST表出场的时候了,因为ST表是现预处理的,所以查询的操作时间复杂度为o(1)。

Wzh20060111的博客 423

华为od面试手撕真题【分解质因数】

华为od面试手撕真题【分解质因数】

MISAYAONE的博客 1133

【系统分析师】2026年上半年真题:案例分析-答案及详解(回忆版)

案例一聚焦因果分析法(鱼骨图)的应用,分析企业订单履约问题。问题1阐述因果分析法定义及常见方法(鱼骨图、5个为什么等);问题2将8个原因归类为人员、方法、合同等5类;问题3筛选适合鱼骨图的场景(如系统响应慢、服务器故障等),强调其适用于复杂根因分析。 案例二对比嵌入式系统中Linux与RTOS的差异(实时性、资源占用等),结合智能监控终端需求推荐Linux+四核ARM方案(高算力、性价比),并列选Linux的5大优势(生态成熟、多任务支持等)。 案例三设计互联网医院系统用例图(患者、医生等参与

数据知道的博客 1352

【模板】ST表

【模板】ST表

脚踏实地,仰望星空 2727

Python爬虫教程:抓取区块链交易信息及加密货币市场数据

随着区块链技术和加密货币的迅猛发展,区块链交易和加密货币市场的数据逐渐成为金融、技术、经济研究等领域的热点。对于开发者和研究者而言,实时获取区块链交易数据和加密货币市场行情,对于投资分析、市场预测、技术研究等具有重要的参考价值。本文将通过Python爬虫技术,介绍如何抓取区块链交易信息及加密货币市场数据,详细阐述数据获取的原理、技术方案、实现方法以及抓取到的数据的存储与分析。我们将依托最新的爬虫技术,如requestsSeleniumScrapy,以及相关的数据处理库(如pandasmatplotlib。

2201_76125261的博客 2777

数据结构——ST表

ST表,又名稀疏表,是一种,用于解决的数据结构。

2301_80475191的博客 4308

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ST表模板

ST 表(Sparse Table,稀疏表)是用于解决的数据结构。ST表基于倍增思想,预处理时间复杂度O(nlogn),O(1)处理每个询问。但是不支持修改操作。——oi wiki。

nobodyy233的博客 852

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ST表详解+模板

ST表 基本概念 ST表是一个用来处理区间最值查询(RangeMaximum/Minimum Query)的离线算法。该算法分 为离线预处理O(n log n)和查询O(1)两个部分,其用到了倍增的思想。 某个区间查询问题是否适用ST表,关键在于其进行的操作是否允许区间重叠,例如max(a,b,c) = max{max(a,b),max(b,c)}就可以用ST表维护,而区间和问题则不能维护。 问题...

Ryan的小窝 1608

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【模板】ST 表

这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。

陈进士学习的博客 1143

模板题st表

这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。

qq_44630195的博客 1012

并查集,ST表,树状数组总结

建最小生成树的过程中记录边的最大值即可。

m0_73553730的博客 2116

ST 表相关练习题

本文介绍了三道ST表相关的练习题,难度递增。第一题"忠诚"是ST表模板题,用于区间最小值查询。第二题"最大数"提供了线段树和逆向ST表两种解法,重点讲解了动态更新ST表的技巧。第三题"01序列"考察最长子序列查询,结合了前缀和与ST表的应用,详细分析了三种可能情况及对应的处理方法。每道题都给出了完整的代码实现和解题思路,适合检验ST表的学习成果。文章结尾提供了相关学习资料链接,鼓励读者继续深入学习。

2403_88695928的博客 1315

每日一题013-ST表-洛谷p3865-模板ST表&&RMQ

这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。

zjh的博客 828

ST算法和ST表

,所以我们可以通过在输入数列a时进行一次预处理,将数列分为n个小段,对于每一个小段求出最大值(有点像最优子结构的意思),最后合并成原来的数列。先设f[i][j]表示数列a中从i开始的2^j个数的最大值,其中f[i][0]=a[i],因为f[i][0]表示a[i]到a[i]间的最大值。即从=以f[i][j] 为分界线,将他左边分成一段,再把他的右边分成一段.首先确定dp边界,就上上面说的f[i][0]的最大值就是a[i]。比如[1,3]=max([1,2],[2,3])f[i][j-1]的i表示i为起点,

weixin_67028876的博客 1530

P3865 【模板】ST 表

P3865 【模板】ST 表

yaosichengalpha的博客 982
上一篇: CF#804 B. Minimum number of steps(字符串,思维)
下一篇: 个人模板 树状数组
信鸦
博客等级 码龄10年 10粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值