UVA11235 - Frequent values(游程编码+线段树)

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例) 本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。 阅读详情

题目链接:

https://vjudge.net/problem/UVA-11235


题目大意:

给定一个递增序列,询问一段区间内出现频率最多的数出现的次数。


解题过程:

之前图灵杯比赛的题,当时照着板子敲A的,现在突发奇想补一下题,感觉还是挺简单的,就是用到了游程编码。


题目分析:

由于题目是有序的,那么可以很方便的将一段相同的数合为一个区间,data[i]表示第i段区间元素个数,lb[i]记录第i段区间的左边界,rb[i]记录第i段区间的右边界,用id[i]表示原序列的第i个数处于哪个区间。

那么对于查询l到r的区间,如果l和r在同一段区间内,那么显然答案就是r-l+1。
如果l和r不在同一段区间,那么答案为以下三个中的最大值,rb[id[l]] - l + 1,r - lb[id[r]] + 1, id[l]+1区间到id[r]-1区间中的最大值`。


AC代码:

#include <bits/stdc++.h>
using namespace std;

const int MAX = 112345;

int tree[MAX<<2];
int data[MAX];

#define lson o<<1
#define rson o<<1|1
#define MID int m = (l+r)/2

void build(int o, int l, int r) {
    if (l == r) {
        tree[o] = data[l];
        return;
    }
    MID;
    build(lson, l, m);
    build(rson, m+1, r);
    tree[o] = max(tree[lson], tree[rson]);
}

int query(int o, int l, int r, int ql, int qr) {
    if (qr < l || r < ql) return 0;
    if (ql <= l && r <= qr) {
        return tree[o];
    }
    MID;
    return max(query(lson, l, m, ql, qr), query(rson, m+1, r, ql, qr));
}

int raw_data[MAX], n, q, lb[MAX], rb[MAX], id[MAX], top;

void init() {
    top = 1;
    lb[top] = data[top] = id[1] = 1;
    for (int i = 2; i <= n+1; i++) {
        if (raw_data[i] != raw_data[i-1] || i == n+1) {
            rb[top++] = i-1;
            lb[top] = i;
        }
        data[top]++;
        id[i] = top;
    }
}

int main() {
    //freopen("in", "r", stdin);
    //freopen("out", "w", stdout);
    while (~scanf("%d", &n) && n) {
        scanf("%d", &q);
        for (int i = 1; i <= n; i++) {
            scanf("%d", raw_data+i);
        }
        memset(data, 0, sizeof(data));
        init();
        n = top-1;
        build(1, 1, n);
        int l, r;
        while (q--) {
            scanf("%d %d", &l, &r);
            //如果l和r在同一个区间内
            if (id[l] == id[r]) {
                printf("%d\n", r-l+1);
                continue;
            }
            //l和r不在一个区间内
            int a = id[l], b = id[r];
            a = rb[a] - l + 1;
            b = r - lb[b] + 1;
            int t = max(a, b);
            a = id[l] + 1, b = id[r] - 1;
            if (a <= b) {
                //查询id[l]+1区间到id[r]-1区间中的最大值
                t = max(t, query(1, 1, n, a, b));
            }
            printf("%d\n", t);
        }
    }
}
YOLOv11改进 | 注意力篇 | YOLOv11引入CBAM注意力机制 我们的实验表明各种模型的分类和检测性能得到了一致的改进,证明了 CBAM 的广泛适用性。简单介绍:CBAM的主要思想是通过关注重要的特征并抑制不必要的特征来增强网络的表示能力。模块首先应用通道注意力,关注"重要的"特征,然后应用空间注意力,关注这些特征的"重要位置"。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~ 阅读详情

相关推荐

WSL 相关命令时遇到了 “无法从raw.githubusercontent.com提取分发列表、操作超时

核心问题:国内网络屏蔽raw.githubusercontent.com,导致WSL无法获取发行版列表;最优方案:优先用方案1(手动指定发行版安装),无需改配置,1分钟搞定;永久修复:用方案2(修改hosts),适合需要管理多个WSL发行版的场景;兜底方案:用方案3(手动下载安装包),适配所有网络环境。按以上步骤操作后,你不仅能正常安装WSL,等命令也能正常执行,后续可正常使用WSL搭配Docker Desktop(如切换WSL 2后端),无需再担心网络超时问题。

weixin_39766667的博客 2133

UVA - 11235

#include <bits/stdc++.h> using namespace std; const int maxn=100000+100; int num[maxn]; int L[maxn]; int R[maxn]; int value[maxn]; int coun[maxn]; int v[maxn]; int d[maxn][1000]; int n,q; void...

zhangzhenjunaixuxin的博客 195

家庭路由器从入门到精通:连接设置、优化排障全指南

路由器作为家庭网络的核心枢纽,其工作原理基于NAT(网络地址转换)和DHCP(动态主机配置协议)两大关键技术。NAT负责将公网IP转换为多个内网IP,实现多设备共享上网;DHCP则自动为接入设备分配IP地址,简化网络配置。这些技术共同构建了稳定、安全的局域网环境,其价值在于为智能家居、在线办公、高清影音和游戏娱乐等场景提供可靠的网络基础。理解路由器的物理连接、后台设置与故障排查逻辑,是优化Wi-Fi信号覆盖、提升网络性能、保障家庭网络安全的关键。本文以路由器配置与排障为核心,详细解析从WAN/LAN口区分、

weixin_33393017的博客 406

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

从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案)

本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。

weixin_29048775的博客 392

BLE天线设计避坑:NRF52832官方50欧姆阻抗匹配的3个常见误区

本文深入解析NRF52832蓝牙SoC天线设计中的常见误区,重点探讨50欧姆阻抗匹配的3个关键问题:PCB板材介电常数差异、匹配元件寄生参数及VSWR测试。通过实测数据和优化方案,帮助工程师规避设计陷阱,提升BLE通信性能。

beer8的博客 214

UVa 11235 - Frequent values

Sparse-Table算法入门题,只不过这里的最小值变成了最大值。

_____ 661

模糊控制 (Fuzzy Control) 算法详解及案例分析

模糊控制是一种基于模糊逻辑的控制策略,其核心思想是通过模糊规则和模糊推理实现对复杂系统的控制。模糊控制不依赖于精确的数学模型,而是通过模拟人类的决策过程来处理不确定性和非线性问题。

闲人编程的博客 3657

UVA 11235

2007/2008 ACM International Collegiate Programming Contest  University of Ulm Local Contest Problem F: Frequent values You are given a sequence of n integers a1 , a2 , ... , an in non-decreasin

XMzhou的专栏 1014

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

Cadence 17.4版本导出坐标文件往往都是txt格式,并且无标题、导出时间、导出设计工程多名称等信息。那么怎么样才能导出有带这些信息的excel版本并格式好看的坐标文件呢?

一点硬件 2763

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

UVA 11235 Frequent values 线段树/RMQ

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

aidiao7379的博客 186

科研绘图系列:R语言折线图(linechart plots)

科研绘图系列:R语言折线图(linechart plots)

专注生信领域 1270

UVa 11235 - Frequent values(线段树版)

这次是Sparse-Table算法版本的修改版,改用线段树解决了RMQ问题,顺带验证下自己写的线段树模版管不管用。

_____ 933

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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的博客 261

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

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

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

UVA-11235 Frequent values(频繁出现的次数)【线段树或RMQ】

题目传送门 题目大意: 给出一个非降序排列的整数数组a1,a2,a3,...an,你的任务是对于一系列询问(i,j),回答a[i],a[i+1],...a[j]中出现次数最多的值所出现的次数。 解题思路: 整个数组是非降序的,所有相等元素都会聚集到一起。这样就可以把整个数组进行游程编码,把整个数组分成若干段,用sum[i]表示第i段的数出现的次数,num[p],lft[p],rig[p...

君兮月影的博客 315

POJ3368/HDU1806/UVa11235 Frequent Values 游程编码+RMQ

***Frequent values Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10192 Accepted: 3733 Description You are given a sequence of n integers a1 , a2 , … , an in non-decreasing

瞬间思维2016 356

uva11235 frequent values(Sparse Table)

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

酱油拌面 431

UVA 11235--Frequent values (线段树--区间数据维护)

题意:给定n个数,按从小到大排好序了,q次询问【l,r】区间内出现次数最多的数字的次数思路:直接感觉就是一个线段树,注意的是在区间合并时,合并处值相同时的处理方法,建树的时候相对还是容易的,直接分情况讨论即可,在查询时,比较麻烦,思维优化是加两个数组分别维护当前位置,左右与其值相同数的个数,这样简单画个图,就能写出公式了,并不是很难,详见代码。感想:做了那么久的那么难的dp,突然做这个简单的,感觉...

AAAAAAAC的博客 282

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

uva11235(RMQ)

题意: 给出一个非降序排序;每次询问区间(i,j); 给出区间内出现最多的数字出现了几次; 非降序就是一样的数字会连在一起,并且升序; 思路: 看训练指南吧; ac代码; #include #include #include #include #include using namespace std; const int N = 100000 + 5; int n,

潜水的程序猿 571

UVa 11235

#include #include #include #include using namespace std; const int maxn=1000010; int n,q,a[maxn],x,y,d[maxn][20],values[maxn],counts[maxn],num[maxn],le[maxn],ri[maxn]; vector v; void RMQ_init(const

Phantom 309

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

UVA-11235 Frequent values——ST算法+游程编码

Frequent values #include<stdio.h> #include<iostream> #include<cmath> #include<math.h> #include<string> #include<string.h> #include<algorithm> #include<sta...

SongyangJi 480
上一篇: CodeForces743D - Chloe and pleasant prizes(树型DP)
下一篇: HDU2196 - Computer(树的直径+DP)
ACM_Fish
博客等级 码龄10年 69粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值