UVa 11235 Frequent values (RMQ)

Langfuse实战:从评估打分到问题解决的完整指南 本文详细介绍了如何利用开源LLM工程平台Langfuse对AI应用进行系统性评估与优化。从创建评估数据集、设计自动化评分函数,到深入排查常见问题并关联Trace进行精准打分,提供了完整的实战指南。最后,探讨了如何利用评估结果驱动提示词迭代与A/B测试,并给出了生产环境部署与性能优化的关键考量,帮助开发者构建可测量、可分析、可改进的LLM应用。 阅读详情

题目链接:http://acm.hust.edu.cn/vjudge/problem/23846


大意:给出一个非降序排列的数组,对于一系列询问(i,j),输出ai——aj中出现次数最多的值出现的次数。


思路:因为数组是按非降序给出的,所以相同的元素一定会连续出现,因此可以对每个数字进行编号,相同的数字编号相同,同时记录每个数字的左右端点。这样每次查询(L,R)时,可以把区间分为三段,第一段为a[L]到数字a[L]的右端点;第二段为数字a[R]的左端点到R;第三段为中间剩下的那一段,他们是由几段完整的数字段组成,可以根据剩余区间左右端点的数字确定其编号区间,调用RMQ进行计算即可。


#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

const int maxn = 100000 + 5;
int a[maxn],L[2*maxn],R[2*maxn],id[2*maxn],d[maxn][30];
vector<int> C;
int n,q;

void init()
{
    int len = C.size();
    for (int i = 0; i < len; i++) d[i][0] = C[i];
    for (int j = 1; (1<<j) <= len; j++)
      for (int i = 0; i+(1<<j)-1 < len; i++)
        d[i][j] = max(d[i][j-1], d[i+(1<<(j-1))][j-1]);
}

int RMQ(int l, int r)
{
    int k = 0;
    while(1<<(k+1) <= r-l+1) k++;
    return max(d[l][k], d[r-(1<<k)+1][k]);
}

int main()
{
    while(scanf("%d",&n) && n) {
        C.clear();
        scanf("%d",&q);
        for (int i = 0; i < n; i++) {
            scanf("%d",&a[i]);
            a[i] += maxn;  //为了防止出现负数,加一个较大值
        }
        a[n] = 3*maxn;
        int cnt(0), l(0), r(0);
        for (int i = 0; i < n; i++) {
            id[a[i]] = cnt; //每个数的编号,即位于第几段
            if (a[i] == a[i+1]) r++;
            else {
                L[a[i]] = l;
                R[a[i]] = r;
                C.push_back(r-l+1);
                l = r = i+1;
                cnt++;
            }
        }
        init();
        while(q--) {
            int l,r;
            scanf("%d%d",&l,&r);
            l--, r--;
            if (a[l] == a[r]) printf("%d\n",r-l+1);
            else {
                int MAX = -1;
                int max1 = R[a[l]] - l + 1;
                int max2 = r - L[a[r]] + 1;
                int ll = R[a[l]] + 1;
                int rr = L[a[r]] - 1;
                if (ll <= rr) {
                    MAX = max(MAX, RMQ(id[a[ll]], id[a[rr]]));
                }
                MAX = max(MAX, max(max1, max2));
                printf("%d\n",MAX);
            }
        }
    }
    return 0;
}



Palabos User Guide中文解读 | 第五章 | Palabos编程 (跳过了第四章Palabos-Java接口) 作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of Geneva Jul... 阅读详情

相关推荐

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

UVa 11235 Frequent values(RMQ)

题目链接:UVa 11235  Frequent values

fobdddf的专栏 505

基于线性光耦HCNR200的高压直流采样电路设计与精度优化

本文详细介绍了基于线性光耦HCNR200的高压直流采样电路设计与精度优化方法。针对直流高电压测量中的安全与干扰问题,提出采用HCNR200光耦隔离方案,实现高精度线性传输。文章深入解析电路设计关键细节,包括电阻网络、运放选型、滤波电容配置等,并提供精度优化实战技巧与常见问题排查指南,助力新能源电动汽车和高压储能系统的高压直流采样应用。

weixin_42713608的博客 579

UVA11235 Frequent values(RMQ)

题目大意:给出一个升序的序列,对于一系列的询问(i,j),回答i到j中出现次数最多的数字。 白书上的例题QAQ,游码编程建立对应的序号与段与最远到达的区间的序号,用RMQ查询一下即可。 #include #include #include #include using namespace std; const int N=100005; int val[N];//第i段的值 int d

HOrchard 385

RK3588内核崩溃日志捕获:pstore与ramoops的实战配置指南

本文详细介绍了在RK3588嵌入式设备上配置pstore与ramoops以捕获内核崩溃日志的实战指南。通过内核配置调整、设备树设置及高级调试技巧,帮助开发者有效定位系统崩溃原因,特别适合户外智能设备等无法长期连接调试器的场景。文章还提供了生产环境优化建议,确保日志捕获的可靠性与安全性。

weixin_29189363的博客 407

你的OLED屏和MPU6050为啥通信失败?从IIC的7位地址冲突讲起

本文深入解析OLED屏与MPU6050传感器在I2C总线上的通信故障,重点探讨7位地址冲突问题。通过分析I2C协议中的地址分配机制,提供硬件调整和软件调试的完整解决方案,帮助开发者有效排查和解决设备无响应问题。

weixin_26876073的博客 151

UVa11235 Frequent values[RMQ]

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). For each query, dete

NULL 527

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2540

UVA11235:Frequent values(RMQ)

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). For each query, d

ACM!荣耀之路! 3670

UE5 Metahuman与Blender手动绑定:ARKit面部动画实战对比

面部动画是角色动画领域的核心技术,其核心原理在于通过驱动面部骨骼或混合形状来模拟真实肌肉运动,从而赋予数字角色生命力。这项技术的价值在于极大地提升了虚拟角色的表现力与沉浸感,广泛应用于游戏开发、影视制作、虚拟现实和实时交互应用。在技术实现路径上,开发者常面临工业化集成方案与高度自定义方案的选择。本文聚焦于使用行业标准的ARKit 52个面部混合形状数据,深度对比了虚幻引擎Metahuman的工业化流程与Blender手动绑定方案在视觉保真度、工作流效率、性能开销和扩展性上的差异,为不同项目规模与技术需求的团

weixin_33901926的博客 449

用Verilog搭建PCIe控制器核心模块

PCIe控制器是硬件设计的核心模块,负责实现设备与主机之间的高速通信。本文将以Verilog语言为例,分步骤讲解如何从零构建一个简化的PCIe控制器核心模块,涵盖事务层(TLP)生成、数据链路层(DLLP)处理和物理层(PHY)接口适配。目标是为嵌入式开发者、FPGA工程师提供一个可扩展的硬件设计框架。​。

xiaoheshang_123的博客 280

UVA - 11235——Frequent values(RMQ)

题目链接:https://cn.vjudge.net/problem/UVA-11235 思路:找出每个位置的数出现的次数,用time[i]表示i位置上的数的出现次数,lef[i]表示最左边与i位置相同的的数的位置,righ表示 最右边与i位置相同数的位置。用RMQ处理time数组。则区间【L,R】中出现最多数的次数为下面三个数的最大值 1. righ[L]-L+1 2. R-lef[R]...

creator平 250

【libnice】meson + vs2022,生成win32工程

libnice

突围 947

UVA 11235 Frequent values 线段树/RMQ

  vjudge 上题目链接:UVA 11235 *******************************************************大白书上解释************************************************************   题目大意:给出一个非降序排列的整数数组 a1,a2,a3,...,an,你的任务是对于一...

aidiao7379的博客 186

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

uva 11235 Frequent values RMQ问题

题目:给你一个n个数字的序列,且序列是不降的,现在问,对于每个询问query(i ,j),序列ai...aj中出现次数最多的那个数的出现次数是多少。 分析:此题应该是经典问题。首先进行游程编码(Run length encoding,RLE)。就是统计以某个值开始的连续出现次数。即(a,b)连续的a值有b个。 这样整序列就变成了以(a,b)为序列元素的另一个序列。再看对于一个询问,qu

最爱她! 422

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

uva 11235 - Frequent values(RMQ)

题目链接:uva 11235 - Frequent values 题目大意:给定一个非降序的整数数组,要求计算对于一些询问(i,j),回答ai,ai+1,…,aj中出现最多的数出现的次数。 解题思路:因为序列为非降序的,所以相同的数字肯定是靠在一起的,所以用o(n)的方法处理处每段相同数字的区间。然后对于每次询问: num[i]=num[j]:j−i+1numi≠numj:max

不慌不忙、不急不躁 1505

VC中sqlite的使用

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

UVA - 11235 - Frequent values (RMQ)

UVA - 11235 Frequent values Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description 2007/2008 ACM International Colle

Never say never 698

UVA - 11235 —— Frequent values 【RMQ】

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23846 题解:   1. 游程编码(将序列转化为(value, num)的一段一段的键值对形式)后,将问题转化为几乎是一个RMQ问题,仅有一些细节要单独考虑   2. 如果查询的两个下标l, r属于同一段键值对,那么答案就是(r - l + 1);否则,答案是三个(或两

AcIsFun的博客 384

UVA 11235Frequent values(RMQ)

训练指南P198 题意:给出一个非降序排列的整数数组a1, a2…… an,你的任务是对于一系列询问(i,j),回答ai, ai+1 ……aj 中出现的次数最多的次数 这题不仅学到了rmq的应用还学到了游程编码 对于一组数 -1, 1, 1, 2, 2, 2, 4就可以编码成(-1, 1), (1, 2), (2, 3), (4, 1),其中(a, b)表示 b 个连续的 a,cn...

apk6909的博客 205

UVA 11235 Frequent values (RMQ)

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). For each query, d

Misdom_Tian_Ya的专栏 571

uva 11235 Frequent values(RMQ)

大概题意:给出一段非降序数组,求出区间 [ l, r ] 的众数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...

Xi4or0uji 396

UVA 11235 - Frequent values(RMQ)

UVA 11235 - Frequent values 题目链接 题意:给定一个升序数列,每次询问一个区间[l, r],求出其中相同数字最大的个数 思路:RMQ,由于是升序,所以数字大小相同的必然连在一块,先预处理出一共有多少段,每段包含多少个数字,和原数组中每个位置对应哪一段,最左边位置和最右边位置,然后每次询问的时候,可以把询问[L, R]的时候可以分成三段: 1、L到r[

Remilia's 1141

Uva 11235 Frequent values 【RMQ问题】

Uva 11235 Frequent values 【RMQ问题】http://www.bnuoj.com/bnuoj/problem_show.php?pid=19653

DafeiACMer 440

UVA11235 Frequent values 频繁出现的数值(RMQ)

题意:给出一个非降序的整数数组,你的任务是对于一系列询问,回答区间内出现最多的值的次数。 分析:详见《训练指南》P11235。因为这个数组是非降序的,所以可以把所有相等的元素组合起来用二元组表示,例如-1,1,1,2,2,2,4就可以表示为(-1,1)(1,2)(2,3)(4,1),其中(a,b)代表有b个连续的a。val[i]代表第i段的数值,cnt[i]代表第i段连续的长度,num[i]表示...

常胜将军的博客 304

Frequent Values(UVa 11235) RMQ问题

来自《算法竞赛入门经典训练指南》 1.RMQ问题 范围最小值问题(Range Minimum Query,RMQ)。给出一个n个元素的数组a[1],a[2],……a[n]。设计一个数据结构,支持查询操作Query(L,R):计算min{a[L],a[L+1],……a[R]}. 采用Tarjan的Sparse-Table算法,它预处理的时间是O(nlogn)。查询只需要O(1)。 令d[i]

相思作坊半世离殇的博客 382

UVA 11235 Frequent values(RMQ)

因为是非递减的,所以相同的是连在一起的。 那么只要用用两个数组value[i],count[i]把连续的去掉,value放的是不同的数组元素,count放的是该数的数量,用num[p],left[p],right[p],分别记录当前位置在去重后的位置,该段的左端点,右端点。 如果l,r在同一段里那么就是r-l+1,否则max(RMQ(num[l]+1,num[r]-1),max(right[l

qq_33901573的博客 243
上一篇: UVa 1428 Ping pong (树状数组)
下一篇: UVALive 6811 Irrigation Lines(匈牙利算法)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值