RMQ的三种奇妙方法
这是2025年3月29号的截图 痛苦的一天 前言 用于记录不幸挂掉的某学校比赛的文章。。。 RMQ是什么 Range Max/Min Query,中文就是区间最大/最小值查询,简称RMQ,这篇文章主要探讨RMQ的3种解决方法。 题面 给你一个长度为NNN的正整数数组A=(A1,A2,...AN)A=(A_1,A_2,...A_N)A=(A1,A2,...AN)。 然后给你MMM个查询,每次查询给你左端点lll和右端点rrr,回答AAA的第lll个元素到第rrr个元素之间的这个区间中的元素的最大值。 1≤N≤1000001 \leq N \leq 1000001≤N≤100000 解题思路 首先你应该想到的 我都把这个看似很简单的题单独拎出来了,你如果还想着BF的话可以选择去往生堂把自己埋了,啊没错这个问题有几种奇妙的方法可以让程序跑的快多了!!! ST表 思路 Sparse...
别样的贴贴车大战
...
树状数组学习笔记
树状数组是什么 本质上就是一个长得像树的数组,长得很像一个二叉树,like下面的图: 我们拿它干嘛呢?我们可以拿它来单点修改,区间查询。 赛场上可能同一个问题树状数组要写10min,但是线段树要30min,你说你写那个? 怎么实现树状数组 好奇树状数组是怎么被人想出来的 lowbit 树状数组是通过这个叫lowbit的函数实现的,它主要用来求一个二进制数最低的一位111以及它后面的一堆000组成的数。 说具体点,比如说114114114这个数,它就等于(1110010)2(1110010)_2(1110010)2,那求lowbit后就会变成(10)2(10)_2(10)2,也就是2 那想要求出lowbit函数的值,我们只需要让它返回xxx andandand (−x)(-x)(−x)就可以了 结构 还是那张图片,我们把数组从前往后编号,你会发现深度相同的位置二进制下末尾0的个数是相同的! ...
对拍,但是构造题
对拍是什么?对拍是一种校验程序正确性的方法,通过比较两个程序的同一个测试样例的输出结果,就可以做到判断正确性。 想必各位dalao们都会对拍吧,在oi这种shabi赛制中,对拍就显得尤为重要。 但是,如果你哪天运气不好,遇到了构造题,应该怎么办呢? 其实说的高大上,这个玩意其实不难,营养并不多,比赛的时候动动小聪明其实也能想到 ...
Tarjan算法笔记
今天是2025年2月12日,这是洛谷的占卜结果: 显然适合学习新算法,今天早上正好学了tarjan,来稍微写一写。 tarjan tarjan求SCC SCC是什么 度娘说了: 有向图强连通分量:在有向图G中,如果两个顶点ViV_iVi,VjV_jVj间(Vi>VjV_i>V_jVi>Vj)有一条从ViV_iVi到VjV_jVj的有向路径,同时还有一条从VjV_jVj到ViV_iVi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图GGG的每两个顶点都强连通,称GGG是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected...
tqq和mmm的神奇冒险
...