D-query (SPOJ - DQUERY,单点修改主席树)

stb-translator-data-repository.zip - Web 版翻译者资料库项目源码 本项目是由 VB6/Qt 桌面版《翻译者资料库》移植而来的 Web 版本,采用 Spring Boot 3.3 + Thymeleaf + Bootstrap 5.3 + MySQL 8.0 技术栈,面向翻译与写作场景提供一站式资料管理底座。系统涵盖资料管家、分类词库、句库、文本处理器、中英对照制作、通用查找、数据备份恢复及旧库迁移等核心模块,完整继承桌面版的编号连续、引号规范化、查重、RTF 附件同步等关键业务规则。前端采用服务端渲染配合本地静态资源,支持离线使用;通过 run.bat 一键完成环境检查、建库、编译与启动,访问 http://localhost:8080 即可使用。 立即下载

一.题目链接:

SPOJ-DQUERY

二.题目大意:

求区间 [l, r] 中不同元素的个数.

三.分析:

先考虑区间右端点 r 的情形.

设有 5 个元素{1,2,2,3,5},每个元素最后出现的位置为{1,0,1,1,1}.

那么,区间[1,5]中不同元素的个数为 sum[5] - sum[0].

区间[1,4]中不同元素的个数为 sum[5] - sum[1].

其他区间同理.

现在再来考虑区间右端点变化的情形.

我们只需对每个右端点建立一颗线段树(区间求和)即可.

当然了,这里肯定要建主席树的.

详见代码.

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <bitset>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-8
#define lc k * 2
#define rc k * 2 + 1
#define pi acos(-1.0)
#define ll long long int
using namespace std;

const int M = (int)1e6;
const ll mod = (ll)1e9 + 7;
const int inf = 0x3f3f3f3f;

struct node
{
    int sum;
    int l, r;
} tree[M * 40 + 5];
int cnt;
int root[M + 5];

int a[M + 5];
map <int, int> pos;

void update(int l, int r, int &x, int y, int pos, int v)
{
    tree[++cnt] = tree[y];
    tree[cnt].sum += v;
    x = cnt;
    if(l == r)
        return;
    int mid = (l + r) >> 1;
    if(pos <= mid)
        update(l, mid, tree[x].l, tree[y].l, pos, v);
    else
        update(mid + 1, r, tree[x].r, tree[y].r, pos, v);
}

int query(int l, int r, int x, int pos)
{
    if(l >= pos)
        return tree[x].sum;
    int mid = (l + r) >> 1;
    int sum = 0;
    if(pos <= mid)
        sum += query(l, mid, tree[x].l, pos);
    sum += query(mid + 1, r, tree[x].r, pos);
    return sum;
}

int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)
    {
        scanf("%d", &a[i]);
        if(!pos.count(a[i]))///不存在的话直接加入即可.
        {
            update(1, n, root[i], root[i - 1], i, 1);
        }
        else///如果之间存在,则需将之前的位置 - 1,在建立一条新链. 不过这里之间建立了两条链,一条 - 1,另一条 + 1.
        {
            int tmp;///记录 - 1 链的树根编号.
            update(1, n, tmp, root[i - 1], pos[a[i]], -1);
            update(1, n, root[i], tmp, i, 1);
        }
        pos[a[i]] = i;
    }
    int m;
    scanf("%d", &m);
    int l, r;
    while((m--) > 0)
    {
        scanf("%d %d", &l, &r);
        printf("%d\n", query(1, n, root[r], l));///查询区间和
    }
    return 0;
}

 

利用LQR反馈控制器在不同风况下模拟风力涡轮转速控制的MATLAB.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户、开放平台解决方案,亦可作为普通项目的基础开发框架使用

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案。

洛谷P2617 Dynamic Rankings 主席树 单点修改 区间查询第 K 大

我们将线段树套在树状数组上,查询前预处理出所有要一起移动的节点编号,并在查询过程中一起将这些节点移到左右子树上。 Code: #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; const int maxn = 6...

EM LGH 604

【无人机控制】基于MATLAB的侧风扰动抑制与风力模型构建:位置误差评估及风场感知路线规划系统设计 MATLAB 无人机侧风扰动抑制|风力模型与位置误差评估

内容概要:本文档围绕无人机在侧风扰动下的飞行稳定性问题,构建了一个基于MATLAB的完整仿真框架,涵盖风力建模、无人机运动仿真、侧风抑制控制、风场感知路线规划及位置误差评估。项目通过五种独立机制(平均风速、风向投影、阵风、湍流、定位噪声)生成具有物理意义的模拟数据,构建二维无人机运动模型,并设计包含比例-积分-前馈的复合控制器以抑制侧风引起的横向漂移。路线规划采用融合距离、风场与转弯代价的A*算法,实现抗扰路径选择。系统提供多层次误差评价体系,并支持结果可视化与模型部署,适用于低空飞行任务的抗风性能分析与优化。; 适合人群:具备MATLAB编程基础,从事无人机控制、路径规划或自动化系统开发的研发人员,尤其适合工作1-3年、希望深入理解环境扰动建模与控制系统协同设计的工程师。; 使用场景及目标:①研究侧风环境下无人机航迹跟踪的误差来源与抑制方法;②对比不同控制策略(如无补偿、积分补偿、前馈补偿)在侧风扰动中的性能差异;③实现融合风场代价的智能路径规划,提升任务安全性与能效;④基于模拟数据训练误差预测模型,支持数据驱动的飞行优化。; 阅读建议:此资源强调可复现性与工程实用性,建议读者结合代码逐模块运行,重点关注风场建模机制、控制律设计、路线代价函数构建及多指标评估方法。应通过调整参数(如风场权重、控制增益)观察系统响应变化,并利用提供的GUI界面进行交互式调试,以深化对各模块协同机制的理解。

ZOJ - 2112 动态单点修改主席树

题目链接 参考博客:https://www.cnblogs.com/Empress/p/4659824.html 题意:n个数,q个询问 (n&lt;=50000, q&lt;=10000) Q x y z 代表询问[x, y]区间里的第z小的数 C x y    代表将(从左往右数)第x个数变成y     对于更新, 我们不改变这些已经建好的树, 而是另建一批树S,用来记录更新,而...

twh233的算法blog 457

高校技术转移办公室人员如何提升技术成果的推介效果和市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文档系统整合了电力电子与新能源领域的Simulink仿真资源,聚焦于两相交错并联Buck-Boost变换器的双闭环PWM控制建模与仿真,同时涵盖多种典型拓扑结构,包括交错并联Boost、PFC功率因数校正、LLC谐振变换器、双向CLLC、DAB变换器、VIENNA整流器等。资源体系完整,包含仿真模型、设计报告、计算书、PPT说明文档及Matlab/Python代码,覆盖从基础建模到高级控制策略(如软开关技术、谐波抑制、状态估计、双闭环控制)的全流程。此外,还拓展至状态估计(卡尔曼滤波、粒子滤波)、智能优化算法、机器学习、信号处理、路径规划等多个交叉学科方向,构建了一个面向科研与工程应用的综合性技术平台。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等专业的硕士博士研究生、高校科研人员,以及从事新能源发电、智能电网、电动汽车、电力传动等领域技术研发的工程师。; 使用场景及目标:①开展电力电子变换器(如Buck-Boost、LLC、DAB、PFC等)的建模、控制与仿真研究;②支撑课程设计、学位论文、科研项目中的系统仿真与算法验证;③学习并复现高水平期刊(如EI)提出的先进控制策略,如基于KKT条件的最优控制、扩展移相调制、恒压恒流双环竞争控制等;④结合智能算法(如粒子群、秃鹰算法)进行微电网调度、储能配置、路径规划等多目标优化问题的研究与快速原型开发。; 阅读建议:建议依据提供的资源目录循序渐进地查阅资料,优先选取与自身研究方向高度契合的内容进行深入学习;应结合仿真模型与配套文档动手实践,调试参数并分析结果,充分利用百度网盘与公众号渠道获取完整资源,提升科研工作的系统性、规范性与创新性。

【SPOJ - DQUERY】D-query【主席树 —— 区间中不同数的个数】

题意: 长度为nnn的序列,qqq次询问,每次给出lll、rrr,返回序列[l,r][l,r][l,r]中不同数的个数。(1≤n≤3∗104,1≤q≤2∗105)(1\leq n\leq 3*10^4,1\leq q\leq 2*10^5)(1≤n≤3∗104,1≤q≤2∗105) 思路: 与之前主席树的权值线段树思路不同,此题的思路是建立nnn颗线段树,第iii颗线段树存储区间[1,i][1,...

lucius-liu.cn 1740

【基于Zernike矩的良性和恶性肿块的分类】应用于乳腺癌诊断中的快速相反权重学习规则(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,重点阐述了其在软开关技术条件下的建模方法与仿真分析过程。该模型能够精确模拟LLC谐振变换器在不同运行工况下的动态响应特性,涵盖开环与闭环控制策略的设计与实现,适用于研究变换器的效率优化、谐振参数匹配、系统稳定性及软开关性能等问题。相较于Simulink等传统仿真工具,Plecs在高频电力电子系统仿真中展现出更高的仿真速度与数值精度,尤其适合用于复杂电力电子拓扑的快速原型验证与优化设计。; 适合人群:具备扎实电力电子技术基础和仿真经验,从事高频功率变换器设计、新能源电源开发、电力电子系统研究的研发工程师及高校研究生。; 使用场景及目标:①深入理解全桥LLC谐振变换器的工作原理与软开关实现机制;②掌握在Plecs环境中搭建高精度、高效率电力电子系统仿真模型的方法;③开展变换器控制策略(如变频控制、闭环稳压)的仿真验证与参数优化;④为科研课题、学位论文或工业项目提供可靠的仿真平台与技术支持。; 阅读建议:建议结合相关电力电子教材与LLC变换器设计指南,深入掌握谐振参数计算与系统稳定性分析方法,并通过反复调试仿真模型,观察关键波形(如原边电流零点切换、副边整流波形),以全面理解软开关过程的物理本质与控制实现细节。

D-query SPOJ - DQUERY 主席树/线段树离线处理

Given a sequence of n numbers a1, a2, ..., anand a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the ...

why932346109的博客 309

产业园区运营负责人如何提升园区内技术成果与企业需求的精准对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何利用数智平台提升核心技术攻关与成果转化协同能力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

D-query SPOJ - DQUERY (主席树入门)

题目链接 题意:给定序列a,给出q次区间询问,每次询问[l,r]区间内有多少个不同的数。 分析: 我们先分析对于固定的区间[1,n],如何利用线段树统计[l,n]不同的数? 我们用线段树记录区间内不同数的个数(这里不是用权值线段树,而是普通地对定义域建树)。 开始是一棵空树, 我们扫描数组并单点修改,如果当前的数a[i]在之前没有出现过,那么直接使线段树的pos==i处的值为1, 如果之前出现过,我们就把之前出现位置的值变成0,当下出现位置的值变成1 。 这样的目的就是使得统计的时候每个数在最右边出现的.

矮纸斜行闲作草 342

高校技术转移办公室人员如何高效完成技术成果的筛选与推介?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Spoj DQUERY D-query (主席树模板)

DQUERY - D-query#sorting #treeEnglishVietnameseGiven a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to...

Rvelamen的博客 268

Docker版OnlyOffice中文字体配置全攻略:从字号调整到字体添加

本文详细介绍了在Docker版OnlyOffice中配置中文字体和调整字号的完整方案。通过容器内操作和配置文件修改,实现中文标准字号映射及思源、阿里巴巴等优质字体的集成,提升文档排版的规范性和专业性。特别针对企业级部署提供了性能优化建议和常见问题解决方案。

weixin_28309571的博客 136

LoRaWAN数据包分析工具

前言:LoRaWAN的射频数据包是加密的,而且有些字段是某个字节的某几位,看着不是那么直观,因此在某些情况下需要借助工具来分析数据包。 1、安装npm 这个工具是用JavaScript写的,其中用到了一些依赖库,而npm就可以一次性把这些依赖库下载下来,因此我们先要下载安装npm这个工具。 安装:sudo apt install npm 输入y,等待安装完成: 检查是否安装成功:npm -v 说明安装完成。 2、安装LoRa数据包分析工具lora-packet 安装:npm i.

freemote的博客 4629

Spoj 3267 DQUERY - D-query

题目描述 EnglishVietnameseGiven a sequence of n numbers a_{1}1​, a_{2}2​, ..., a_{n}n​and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to re...

weixin_30787531的博客 90

Allegro Design Entry CIS 与 OrCAD Capture CIS:PCB设计工具链中的双雄对决

本文深入对比了Cadence旗下两大原理图设计工具Allegro Design Entry CIS与OrCAD Capture CIS。Allegro Design Entry CIS源自Concept HDL,定位高端,强调自顶向下的层次化设计和与Allegro PCB Editor的无缝约束管理,适合大型复杂系统及团队协作。OrCAD Capture CIS则以其出色的易用性、广泛的兼容性和强大的CIS数据库功能著称,是中小型项目及跨工具链协作的通用选择。文章从历史渊源、核心功能、适用场景等多维度剖析,

bush的博客 486

spoj 3267 D-query

题目链接:http://vjudge.net/problem/SPOJ-DQUERY ------------------------------------------------------------------------------ 主席树模板题之一 求不带修改的区间不同数个数 最近学习了下发现主席树就是可持久化线段树 由于每次单点修改只会改变一条链上的信息 所以我们可以把其余部...

weixin_30491641的博客 128

Arduino IDE 2.3.2 配置 UNO R4 WIFI 开发环境避坑指南(附LED矩阵驱动测试)

本文详细介绍了如何在Arduino IDE 2.3.2中配置UNO R4 WIFI开发环境,并提供了LED矩阵驱动的实战指南。从开发环境搭建到硬件连接,再到LED矩阵的初始化和弹球动画实现,手把手教你避开常见配置陷阱,最终实现流畅的动画效果。特别适合刚接触UNO R4 WIFI的开发者快速上手。

weixin_28675839的博客 220

【人工智能-数据集】RML2018 时域信号的时序信号和星座图的图片信号生成方式(可用于多模态特征融合)

RML2018(RadioML 2018)数据集是一个广泛用于无线通信信号识别的开源数据集。它包含了多种调制方式(如OOK、QPSK、16QAM等)在不同信噪比下的信号样本。这些数据以 HDF5 格式存储,适用于大规模的数据处理和分析。数据集特点:多调制方式:涵盖24种不同的调制方式。多信噪比:包括从-20 dB到30 dB的26种信噪比。大规模样本:每种调制方式和信噪比下包含4096个样本。数据切分:将原始的 HDF5 数据集按照调制方式和信噪比切分成单个文件,便于后续处理。样本选择。

若北辰 971

数据结构习题集

数据结构习题集 1 D-query SPOJ - DQUERY 数据结构习题集 1 D-query SPOJ - DQUERY 查询区间不同数的个数,线段树离线,主席树在线做

海边拾贝,沧海一粟 1024

OpenClaw实战系列06:持久记忆与RAG知识库构建——让AI真正“记住”你

本文介绍了OpenClaw AI助理的持久记忆与RAG知识库构建功能。OpenClaw采用"文件即真理"的独特设计,所有记忆都以Markdown文件形式存储,支持直接编辑和Git版本管理。记忆系统分为三层:长期精炼记忆(MEMORY.md)、日常日志(按日期存储)和归档记忆。文章详细说明了环境配置步骤,包括安装必要组件、创建目录结构、设置API密钥,并提供了OpenClaw主配置文件的完整参数说明。该系统实现了跨会话、跨平台的持久化记忆,使AI助理能真正理解用户需求。

PeterPan的博客 1171
上一篇: K-th Number (POJ - 2104,可持久化线段树模板)
下一篇: Radar Installation(POJ - 1328,贪心)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值