首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
小A的排列
[编程题]小A的排列
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
小A有一个长度为n的排列
,
小A想要知道这个排列中,所有区间的中位数。
不过最近小A沉迷巫师3,到处打牌无法自拔,所以他找到了你,希望你能够解决这个问题。
设区间l,r的中位数为
为了方便,只需要你输出
。
答案对
取模。
中位数的定义:
对于一个不重集合,将这个集合里的数从小到大排序为
当m是奇数,S的中位数为
当m是偶数,S的中位数为
输入描述:
第一行两个正整数n,seed ,含义如题目所示
第二行一个排列p
输出描述:
一个正整数ans。
示例1
输入
4 1 1 2 3 4
输出
50
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(0)
分享
纠错
提交结果有问题?
0个回答
1篇题解
开通博客
Muscari
发表于 2020-10-04 17:27:25
一个暴力是枚举左右端点,用 set 求中位数,然而是 的。 但是我们注意到,在加入一个数后,中位数至多只会移动 个位置,即不变或者变成前驱或后继。 于是我们需要支持一个 插入、 求前驱后继的数据结构,发现并找不到。 但是我们可以倒过来变成删除,这样子就可以用链表维护了。 // ========
展开全文
问题信息
思维题
难度:
0条回答
0收藏
9浏览
热门推荐
相关试题
托米的划分
思维题
评论
(0)
分析以下代码 class Pers...
Javascript
评论
(1)
请问以下有关 Promise 内置...
Javascript
评论
(1)
你正在设计一个深度学习系统,该系统...
深度学习
评论
(1)
宏定义是C语言中非常实用的一种计算...
C语言
评论
(1)
小A的排列
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
4 1 1 2 3 4
50