前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++信奥教学PPT:CSP_S _基础算法之离散算法

C++信奥教学PPT:CSP_S _基础算法之离散算法

作者头像
一枚大果壳
发布2024-04-17 13:43:20
800
发布2024-04-17 13:43:20
举报
文章被收录于专栏:编程驿站编程驿站

声明:此系列PPT章节内容遵循全国青少年信奥赛大纲的要求组织、制作。PPT中的内容主要来源于个人公众号发布的技术性文章。PPT中也收集了不少刷题网站上的试题。

数列离散化

题目描述

给定一个长度为

n

的数列

a

。定义

\mathrm{rank}(i)

表示数列

a

中比

a_i

小的不同数字个数再加一。

1 \leq i \leq n

,现在请你求出所有的

\mathrm{rank}(i)

输入格式

本题单测试点内有多组测试数据

输入的第一行是一个整数,表示数据组数

T

。接下来依次给出每组数据的信息:

第一行是一个整数,表示数列长度

n

。 第二行有

n

个整数表示数列

a

,第

i

个整数表示

a_i

输出格式

对每组数据,输出一行

n

个整数,用空格隔开,依次表示

\mathrm{rank}(1)

\mathrm{rank}(n)

样例 #1

样例输入 #1

代码语言:javascript
复制
3
3
1 2 3
5
1 6 2 2 7
4
-1 -2 -3 -3

样例输出 #1

代码语言:javascript
复制
1 2 3
1 3 2 2 4
3 2 1 1

提示

数据规模与约定

对全部的测试点,保证

1 \leq T \leq 5

1 \leq n \leq 10^5

-10^9 \leq a_i \leq 10^9

可持久化线段树

题目背景

这是个非常经典的可持久化权值线段树入门题——静态区间第

k

小。

数据已经过加强,请使用可持久化权值线段树。同时请注意常数优化

题目描述

如题,给定

n

个整数构成的序列

a

,将对于指定的闭区间

[l, r]

查询其区间内的第

k

小值。

输入格式

第一行包含两个整数,分别表示序列的长度

n

和查询的个数

m

。 第二行包含

n

个整数,第

i

个整数表示序列的第

i

个元素

a_i

。 接下来

m

行每行包含三个整数

l, r, k

, 表示查询区间

[l, r]

内的第

k

小值。

输出格式

对于每次询问,输出一行一个整数表示答案。

样例 #1

样例输入 #1

代码语言:javascript
复制
5 5
25957 6405 15770 26287 26465 
2 2 1
3 4 1
4 5 1
1 2 2
4 4 1

样例输出 #1

代码语言:javascript
复制
6405
15770
26287
25957
26287

提示

样例 1 解释

n=5

,数列长度为

5

,数列从第一项开始依次为

\{25957, 6405, 15770, 26287, 26465\}

  • 第一次查询为
[2, 2]

区间内的第一小值,即为

6405

  • 第二次查询为
[3, 4]

区间内的第一小值,即为

15770

  • 第三次查询为
[4, 5]

区间内的第一小值,即为

26287

  • 第四次查询为
[1, 2]

区间内的第二小值,即为

25957

  • 第五次查询为
[4, 4]

区间内的第一小值,即为

26287

数据规模与约定

  • 对于
20\%

的数据,满足

1 \leq n,m \leq 10

  • 对于
50\%

的数据,满足

1 \leq n,m \leq 10^3

  • 对于
80\%

的数据,满足

1 \leq n,m \leq 10^5

  • 对于
100\%

的数据,满足

1 \leq n,m \leq 2\times 10^5

|a_i| \leq 10^9

1 \leq l \leq r \leq n

1 \leq k \leq r - l + 1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数列离散化
    • 题目描述
      • 输入格式
        • 输出格式
          • 样例 #1
            • 样例输入 #1
            • 样例输出 #1
          • 提示
            • 数据规模与约定
        • 可持久化线段树
          • 题目背景
            • 题目描述
              • 输入格式
                • 输出格式
                  • 样例 #1
                    • 样例输入 #1
                    • 样例输出 #1
                  • 提示
                    • 样例 1 解释
                    • 数据规模与约定
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档