UVa 11235 Frequent Values(RMQ,ST算法)

一文看懂英伟达A100、H100、A800、H800、H20 想要Deepseek私有化部署吗?无论是训练大型AI模型,还是进行高性能计算(HPC),还是Deepseek私有化部署,都需要强大的GPU支持。而英伟达(NVIDIA)作为全球领先的AI芯片制造商,推出了一系列高性能GPU,包括等,广泛应用于AI训练、推理、科学计算等领域。如果想搭建一个属于自己的算力中心,该如何选择合适的GPU?本文将带你详细了解这些GPU的特性,并指导你如何搭建算力中心。一、英伟达算力GPU系列解析1. A100:数据中心AI计算的奠基石:Ampere:6912:432。 阅读详情

注意到数列是非递减的,这代表相等的数字一定是挨在一起的。

用a[i]表示数字i所在的段的长度。

用left,right数组维护每个数字所在段左右边界位置。

这样对于查询s~t,right[s]+1~left[t]-1这个子区间全都是完整的段,对这个子区间做RMQ,得到最长的段长度。然后再考虑这个子区间两个边界到s,t的距离。这两个距离也可能是答案。这三个答案的最大值就是最终答案。

要特判s和t相等,以及right[s]+1>=left[t]-1不合法。

RMQ用ST算法做,预处理nlogn,查询O(1)。

思路是用c[i][j]表示从位置i开始,到i+(1<<j)-1这一段的最大值。

递推方程是

c[j][i]=max(c[j][i-1],c[j+(1<<(i-1))][i-1]);

即当前段最大值等于两个子段最大值中最大的。

完整ST算法代码在下面。

代码:

//
//  main.cpp
//  11235 Frequent Values
//
//  Created by Baoli1100 on 15/3/13.
//  Copyright (c) 2015年 Baoli1100. All rights reserved.
//

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int N,Q;
int c[100005][20];
int a[100005];
int p[100005];
int Left[100005];
int Right[100005];
void init(){
    for(int i=0;i<N;i++){
        c[i][0]=a[i];
    }
    for(int i=1;(1<<i)<=N;i++){
        for(int j=0;j+(1<<i)<=N;j++){
            c[j][i]=max(c[j][i-1],c[j+(1<<(i-1))][i-1]);
        }
    }
}

int Query(int s,int t){
    int len=t-s+1;
    int k=0;
    while((1<<(k+1))<=len){
        k++;
    }
    return max(c[s][k],c[t-(1<<k)+1][k]);
}

int main(){
    while(~scanf("%d",&N)){
        if(!N) break;
        scanf("%d",&Q);
        for(int i=0;i<N;i++){
            scanf("%d",&p[i]);
        }
        memset(a,0,sizeof(a));
        int pos=0;Left[0]=0;
        a[0]=1;
        for(int i=1;i<N;i++){
            if(p[i]==p[i-1]){
                a[i]=a[i-1]+1;
            }
            else {
                pos=i;
                a[i]=1;
            }
            Left[i]=pos;
            
        }
        pos=N-1;Right[N-1]=N-1;
        for(int i=N-2;i>=0;i--){
            if(p[i]==p[i+1]) a[i]=a[i+1];
            else pos=i;
                
            Right[i]=pos;
        }
        
        init();
        
        for(int i=0;i<Q;i++){
            int s,t;
            scanf("%d%d",&s,&t);
            s--;t--;
            int res=0;
            if(p[s]==p[t]) res=t-s+1;
            else{
                if(Right[s]+1<Left[t]-1)res=Query(Right[s]+1,Left[t]-1);
                res=max(res,Right[s]-s+1);
                res=max(res,t-Left[t]+1);
            }
            printf("%d\n",res);
        }
        
    }
}


5G NR切换测量事件解析:从A1到B2的实战应用指南 本文深入解析5G NR切换测量事件,从A1到B2的实战应用指南。详细介绍了系统内切换事件(A1-A6)和系统间切换事件(B1-B2)的触发条件与配置建议,帮助优化网络性能。通过实际案例分享,展示如何调整参数提升切换成功率和降低乒乓切换率,适用于5G网络优化工程师。 阅读详情

相关推荐

避坑指南:Qt无边框窗口拖动+阴影效果这些细节要注意

本文深入探讨了Qt无边框窗口开发中实现流畅拖动与阴影效果的关键细节与常见陷阱。针对高DPI屏幕适配、阴影闪烁、拖动卡顿及多显示器兼容性等核心难题,提供了从QGraphicsDropShadowEffect原理剖析到手动绘制优化、坐标系统精准处理及平台原生事件拦截的实战解决方案,帮助开发者构建稳定、美观的商业级应用界面。

weixin_27943395的博客 479

poj3368 Frequent values(ST思维题)

题目 有n(n<=1e5)个数字,m(m<=1e5)次询问, 每次询问区间[Li,Ri]中出现最多次数的数字,输出最多次数。 题目保证,对于 思路来源 https://blog.youkuaiyun.com/qq_24489717/article/details/51040122 题解 首先,尺取处理出,对于值v来说,它是第几个出现的v 由于数组是不降的,所以相同的值是挨在一起的 ...

小衣同学的博客 387

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案 入门基础 11.多选题 以下方式中属于FineReport中预览模式的有( ) 分页预览、填报预览、新填报预览、数据分析、移动端预览 16.判断题 FineReport报表工具必须购买激活码后才能使用。 错误,可以免费获取激活码。 29.单选题 FineReport是一款利用( )语言开发的报表工具。java 41.多选题 访问帮助文档的方式有哪些?设计器中社区菜单下-帮助文档;直接访问http://help.finere

qq_37485720的博客 2万+

POJ3668——Frequent values(线段树,RMQ,ST表)

Frequent values Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice POJ 3368 Description You are given a sequence of n integers a1 ,

say_c_box的博客 854

RedHat 9 替换yum源镜像

引言:我们个人通常使用的红帽系统yum源是需要注册付费的,所以在使用yum源安装一些软件时无法正常安装(例如:MySQL),这时我们就需要将yum源替换为CentOS对应的源,以实现在红帽系统中正常安装软件。

YUJIAOZHU666的博客 3739

抽象代数学习笔记(抽象代数的历史、运算)

1. 抽象代数历史 对于五次及以上的代数方程是否存在根式解这个问题,欧拉、拉格朗日、高斯等数学家都没得到答案,但是他们得出五次及以上的代数方程组不存在根式解的结论。19世纪初,阿贝尔提出五次及以上的代数方程不存在根式解,并找出一类特殊的五次及以上的代数方程可以用根式解表示出来。另外一个年轻的数学家伽罗华...

huangzhpei的博客 3668

NKOJ1752——Frequent values (运用ST算法)

•由于给定的数列是有序的,可以先转化为另一种存储方式,使得新数列中的每个数是原数列中的元素重复次数,例如 •-1 -1 1 1 1 1 3 10 10 10 •转化为:2  4  1  3 •辅助sum数组用来二分查找:2 6 7 10 •对于输入的区间,利用二分查找找到它在新数列中对应的区间,除了边界要特殊处理以外,余下的部分就是RMQ了!#include #include #include #define max 100005 int a[max],dpfmax[max][20],b[

r_ax的专栏 742

《计算机网络》复试问答题总结

DNS 是一个联机分布式数据库系统,负责主机名和 IP 地址之间的转换,需要进行域名查询的机器主动发起域名解析请求,域名服务器则随时准备做出响应。域名服务器的数据库中存放着它所管辖范围的主机名和 IP 地址之间的映射表,域名服务器之间又可以相互联络和协作,以便分布在 Internet 各个域名服务器数据库中的域名都能被有效地搜索,从而实现主机名与 IP 地址的映射。为了提高解析效率,使用了域名缓存技术。在服务器、主机中设置一个专用的内存缓冲区。服务器用来存放近期解析过的域名及其对应的 IP 地址的映射。

weixin_45971154的博客 2029

[RMQ问题] Frequent values UVA - 11235 ST算法入门

题目链接:Frequent values 本来昨天下午就能搞出来的题硬是被一个极其微小的错误搞得花了两天时间才解决,说明自己还是功底不够,还有一方面是对RMQ的运用不那么熟练以至于出错需要大量时间找错误。 题意 给你一个非降序的整数数组,你的任务是对于一系列查询(i,j),回答ai,ai+1,...,aj{a_i,a_{i+1},...,a_j}ai​,ai+1​,...,aj​中出现次数最多的值所出现的次数。 题解 本题首先需要分析转换,如果按照正常暴力需要O(n2)O({n^2})O(n2)时间复杂度。

张小生的先生的博客 211

山石网科Hillstone防火墙基础上网配置_CLI命令行(最新版)

山石网科Hillstone防火墙安全网关基础上网基础网络配置_CLI命令行(最新版)

路与肥的博客 1万+

黑猫带你学Nand第8篇:NandFlash的供电情况详解

是指在任何工作条件下,设备允许的最大电压、电流、功率以及温度等参数的界限值。

黑猫奥利奥的博客 1150

UVA - 11235 Frequent values ST表

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2176 题目大意:给定一个非递减数列Ai,你只需要支持一个操作:求一段区间内出现最多的数字的出现次数。 思路:st表。首先要把原序列A分成块。相等的数我们合成一块并把这一块的数的个数...

xiji333的博客 287

【技能】OpenClaw Skills学习及手搓一个极简skill

本文介绍了OpenClaw Skills的基础概念与使用方法。Skills是OpenClaw代理使用工具的核心载体,通过SKILL.md文件定义技能属性和执行方式。技能加载遵循"工作区>本地>内置>自定义目录"的优先级规则。用户可通过ClawHub一键安装现成技能,也可自定义开发技能:创建技能目录,编写包含YAML元数据和执行指令的SKILL.md文件,放置于工作区skills目录进行测试。文章还介绍了多代理场景下的技能共享、插件集成以及安全注意事项,包括沙箱使用和敏感

海兰 3977

UVA11235 Frequent values(分块+RMQ)

原题链接 将相同的数分到一块中 loc[i]表示当前ai属于那一块 l[i]表示第i块的左边界 r[i]表示第i块的右边界 sum[i]表示第i块的元素个数 ans=max(r[loc[x]] - x + 1,y - l[loc[y]] + 1,RMQ(loc[r[loc[x]] + 1], loc[l[loc[y]] - 1])) 即搜索目标区间左、右的残缺块元素个数+中间完整块的区间最值 注意...

Weng Shihao's blog 236

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

UVA11235 Frequent values

思路 连续的值只会分布在一起成一个块 讨论两边的块,中间就是RMQ了 ST表即可 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int times[100100],belong[100100],lb[100100],rb[100100],inq,...

weixin_34204722的博客 75

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

uva11235 frequent values(Sparse Table)

题目链接:https://vjudge.net/problem/UVA-11235题意:给一个非降序的整数数组a,求[i, j]中出现最多次数的数,出现了几次。思路:明显的是RMQ问题。白书上用的是Sparse Table,这个叫ST表就变成了表表….一开始思路就被定死,求出现最多的数出现的次数,感觉无从下手。看到刘汝佳的做法,还有这种操作….先进行游程编码,把相同的数压缩成一个点,对于所求的区间[

酱油拌面 431

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Uva 11235 Frequent values

求解一段区间内出现次数最多的数出现的次数。由于数列已经是非降序排列,因此可以采用游程编码来进行预处理。游程编码(Run Length Ecoding),用count[i]表示第i段的数值出现的次数,num[p],left[p],right[p]分别表示位置p所在段的编号和左右端点的位置。处理结束后,这就是一个RMQ问题,使用ST算法加以解决即可。每次询问[l, r]的结果都是以下三个部分的最大值:

思维迷宫 479

UVA 11235-Frequent values-RMQ(st表)+游程编码

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23846 题目大意:给一个非降序排列的整数数组a,你的任务是对于一系列询问(i, j),回答ai,ai+1...aj中次数出现最多的值所出现的次数。 预处理是先把所有相同的元素合并成一个node,node含该元素编号+该元素个数  ( 称为表2) 并且记录

缺氧 677

uva11235:Frequent values (ST表)

题目大意:给出一个非降序排列的整数数组,a1,a2,…,an,你的任务是对于一系列的询问(i,j),回答ai,ai + 1,…,aj中出现次数最多的值所出现的次数。 输入格式:多组数据,每组数据第一行输入n和q,(1 <= n ,q <= 100000)。第二行包含n个非降序排列的整数a1,a2,…,an (-100000 <= ai <= 100000)。以下q行每行包括...

qq_41997978的博客 389

POJ - 3368 Frequent values (RMQ + 游程编码)

POJ - 3368 Frequent values UVA - 11235 Frequent values 题目 题目给出一个长度为 n 非递减序列,q 次询问区间最长连续相等序列长度。 (1&lt;=n,q&lt;=1e51 &lt;= n,q &lt;= 1e51<=n,q<=1e5) 分析 区间问题,线段树肯定可以做,不过应该有点麻烦。可以看出题...

Stormjing的博客 262

UVa 11235 Frequent values (RMQ && 区间出现最多次的数的次数)

题意 : 给出一个长度为 n 的不降序序列,并且给出 q 个形如(L, R)的问询,问你这个区间出现的最多次的数的次数。 分析 :很自然的想到将区间“缩小”,例如1 1 2 3 3 3就可以变成2 1 3,构造出“数量数组”,这个数组实际上就是已经将原来区间分了块,但是问询的区间不可能就是这些“数量数组”构成的"块",不过先来想想问询的区间可不可能包含这里面的某些"块"?很显然...

156

Frequent values UVA - 11235(RMQ)

#include<bits/stdc++.h> using namespace std; const int N=1e5+5; int a[N],lef[N],righ[N],cnt[N],num[N],st[N][30]; int len,n,m,l,r; void ST() { for(int i=1;i<=len;i++) st[i][0]=cn...

Aimer的博客 173

解题报告:UVA_11235 Frequent Values RMQ_ST + 游程编码

题意: 给出非降序整数列,q次查询区间内出现次数最多的值所出现的次数 思路:      利用游程编码的得到新数列A[],然后对A进行RMQ,每次查询区间[ l , r ] ,分成三个部分,[ l , right[ l ] ] , [ l+1 , r-1 ] ,[ left [ r ] , r ] 。游程编码竞赛好像蛮实用,可以借这题熟悉一下。 #include #i

Hee的博客~ 449

uva 11235 Frequent values

Description You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In addition to that, you are given several queries consisting of indices i and j (1 ≤ i ≤ j ≤ n). F

? 428

[uva11235]Frequent values(RMQ,ST,离散化)

题目链接:https://vjudge.net/problem/UVA-11235 题意:给一串不递减数字,q次询问,每次查询[l,r]内出现次数最多的数字出现的次数。 查询分两部分:一部分是[l,r]为同一个数的区间,另一部分则是在上下界处截取一部分的情况。 首先离散化,后用l[],r[],v[]分别记录每一段相同数字的左右区间和出现次数。v可以直接由r-l+1更新得到。 第一部分更新r...

weixin_30590285的博客 133

[POJ3368][UVA11235] Frequent values[ST表]

题意:给出一个不降序列,有多个询问,询问[l,r]中出现次数最多的数的出现次数 多组数据 对于序列-1 -1 1 1 1 1 3 10 10 10 可以这么理解<-1,2>, <1, 4>, <3,1>, <10,3> cnt[i]记录这个数字的出现次数,lef[i]记录左端点,righ[i]记录右端点,belong[i]代表第i个数字属于哪一块 把...

weixin_34302798的博客 151
上一篇: UVa 11991 I Can Guess The Data Structure(STL基础)
下一篇: UVa 11992 Fast Matrix Operations(两种标记的线段树)
Baoli1008
博客等级 码龄12年 70粉丝 293原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值