当前位置: 首页 > news >正文

20250718-FDU-HDUOJ钉耙编程一

前言

喜提倒一

正文

10. 中位数

题意

给出长 nnn 的排列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an。求 ∑1≤l≤r≤n[(r−l)≡0mod2]⋅l⋅r⋅p(a[l,...,r])\sum_{1\le l\le r\le n}[(r-l)\equiv0\mod2]\cdot l\cdot r\cdot p(a[l,...,r])1lrn[(rl)0mod2]lrp(a[l,...,r]),其中 p(a)p(a)p(a) 表示序列 aaa 的中位数。

做法

听说 O(Tn2log⁡n)O(Tn^2\log n)O(Tn2logn) 能卡常卡过去,但是没试成功,一个做法是对顶堆,另一个做法是树状数组上的倍增。需注意倍增只能求一定条件下的最大值,所以我们求不符合条件的最大值再加一。

正解是 O(Tn2)O(Tn^2)O(Tn2)。就是枚举中位数,然后其他数字中我们只关心它和中位数的相对大小,所以记比中位数小的为 −1-11,比中位数大的为 111,然后求其前缀和 sumsumsuma[l,r]a[l,r]a[l,r] 成立当且仅当 suml−1=sumrsum_{l-1}=sum_rsuml1=sumr

代码

HUDOJ 提交记录

paste

http://www.xdnf.cn/news/1144135.html

相关文章:

  • 初探:C语言FILE结构之文件描述符与缓冲区的实现原理
  • 更适合后端宝宝的前端三件套之HTML
  • CentOS7 内网服务器yum修改
  • 有好内容,如何做好知识变现?
  • 【Zephyr开发实践系列】08_NVS文件系统调试记录
  • GEV/POT/Markov/点过程/贝叶斯极值全解析;基于R语言的极值统计学
  • 【案例教程】基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析实践技术应用
  • [AI8051U入门第五步]modbus_RTU主机
  • stack and queue 之牛刀小试
  • Excel批量生成SQL语句 Excel批量生成SQL脚本 Excel拼接sql
  • 大型市政污水处理厂“智变”记:天拓四方IOT平台让磁悬浮鼓风机“活”起来
  • React 实现人员列表多选、全选与取消全选功能
  • MC0457符咒封印
  • Ansible + Shell 服务器巡检脚本
  • mysql not in 查询引发的bug问题记录
  • pycharm结构查看器
  • 2.3 前端-ts的接口以及自定义类型
  • 哪个厂家生产的戒烟药好:从机制到体验的差异化博弈
  • MySQL 插入时间 更新时间
  • 推荐 1 款 4.5k stars 的AI 大模型驱动的开源知识库搭建系统
  • 跨域问题及解决方案
  • AI(day10)模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
  • Java Web项目Dump文件分析指南
  • LLM(Large Language Model)大规模语言模型浅析
  • 在 Jenkins 中使用 SSH 部署密钥
  • 游戏盾能否保护业务免受DDoS攻击吗?
  • C语言基础:数组练习题
  • 服务器内存满了怎么清理缓存?
  • 【C++】——类和对象(中)——默认成员函数
  • 前端基础——B/S工作原理、服务器与前端三大件