The Median of the Median of the Median

news/2024/9/19 21:12:55/文章来源:https://www.cnblogs.com/watersail/p/18417930
  • 难以直接求解。考虑用二分答案转化为判定(根据复杂度理论,判定的难度小于求解)。
  • 当你想不到一个更新的视角看待问题时,不妨回顾一下你已有的想法,正解说不定就隐藏其中,只需要再深入一些
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int a[2005],b[2005][2005],v[2][2005][2005];
priority_queue<int>qxiao;
priority_queue<int,vector<int>,greater<int> >qda;
int len;
void clear()
{len=0;while(qxiao.size()){qxiao.pop();}while(qda.size()){qda.pop();}
}
void update(int x)
{if(len%2==0){if(qda.empty()||x<=qda.top()){qxiao.push(x);}else{qxiao.push(qda.top());qda.pop();qda.push(x);}}else{if(qxiao.empty()||x>=qxiao.top()){qda.push(x);}else{qda.push(qxiao.top());qxiao.pop();qxiao.push(x);}}len++;
}
int main()
{int n;cin>>n; for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){clear();for(int j=i;j<=n;j++){update(a[j]);b[i][j]=qxiao.top();}}int l=1,r=1000000000;while(l<r){int mid=(l+r)>>1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){v[0][i][j]=v[0][i-1][j]+v[0][i][j-1]-v[0][i-1][j-1];v[1][i][j]=v[1][i-1][j]+v[1][i][j-1]-v[1][i-1][j-1];if(i>j){continue;}v[0][i][j]+=(b[i][j]<=mid);v[1][i][j]+=(b[i][j]>=mid);}}int val0=0,val1=0;for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){int v0=v[0][j][j]-v[0][i-1][j]-v[0][j][i-1]+v[0][i-1][i-1];int v1=v[1][j][j]-v[1][i-1][j]-v[1][j][i-1]+v[1][i-1][i-1];int m=j-i+1;int tot=m*(m-1)/2+m;val0+=(v0>=(tot+1)/2);val1+=(v1>=tot-(tot+1)/2+1);}}if(val0>=val1){r=mid;int tot=n*(n-1)/2+n;if(val0>=(tot+1)/2&&val1>=tot-(tot+1)/2+1){cout<<mid<<endl;return 0;}r--;}else{l=mid;int tot=n*(n-1)/2+n;if(val0>=(tot+1)/2&&val1>=tot-(tot+1)/2+1){cout<<mid<<endl;return 0;}l++;}}cout<<l<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799170.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF打包独立运行的程序

方案一:使用Costura.Fody插件将自己写的程序打包成一个可以独立运行的EXE文件 第1步:安装Costura.Fody 首先用Visual Studio 2017打开你的解决方案,依次找到“工具”---“NuGet包管理” - “管理解决方案的NuGet程序包”,到了这一步会打开NuGet-解决方案页面,在浏览选项下面…

物联网平台推荐:ThingsKit

ThingsKit物联网平台 随着物联网技术的不断进步,企业和开发者对于一个可靠、高效且易于使用的物联网平台的需求日益增长。在这样的背景下,ThingsKit物联网平台以其卓越的性能和丰富的功能,成为了市场上的一股清流。 一、ThingsKit物联网平台概述 ThingsKit是一个功能强大、易…

面试官:单核服务器可以不加锁吗?

今天有位同学问了磊哥一个问题,大概的意思是“单核服务器可以不加锁吗?”,我觉得很有意思,所以在这里就和各位探讨一下:1. 问题答案 先说我的理解,单核服务器仍然需要加锁。因为在单核服务器上也会有线程切换,如果不加锁,那么线程切换后,另一个线程就可以访问其他线程…

[CTFshow] 文件包含 78~88,116~117

web78 if(isset($_GET[file])){$file = $_GET[file];include($file); }else{highlight_file(__FILE__); }php伪协议,data:// 数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码 ?file=data://text/plain,<?=system(ls)?> ?file=data://text/plain,<?…

如何获取并展示PDD商品的详细信息?

在数字化时代,获取并展示PDD商品的详细信息对于电商运营者来说至关重要。这不仅有助于提升用户体验,还能增强商品的转化率。以下是一些有效的方法和策略,可以帮助你获取并展示PDD商品的详细信息。利用API接口 PDD提供了丰富的API接口,允许开发者获取商品的详细信息。通过AP…

重点区域人员徘徊识别监测系统

重点区域人员徘徊识别监测系统对监控画面中重要区域进行实时检测分析。当重点区域人员徘徊识别监测系统检测到一些人徘徊停留时,SuiJi-Ai系统立即报警,并提醒相关负责人妥善处理同时将报警截图和视频保存到数据库中生成表格。SuiJi-Ai重点区域人员徘徊识别监测系统主要通过现…

章13——包装类——Math类

常用方法 均为静态1、random 默认下返回 0 到 1 的随机数(前闭后开) 2、如取 2->7 之间的随机数: int a = (int)(2 + (5+1)*Math.random()); //+1的原因:(int)会舍去小数,且 random 的取值前闭后开,如果不 +1 最大只能取到6

新能源汽车如何更好地落地供应商伙伴协同系统管理?

近年来,我国新能源汽车业得到快速发展,从新能源汽车制造的产业链来说,包括上中下游,其中: 上游产业主要包括原材料供应和关键零部件生产两大部分: 原材料供应:主要为矿产资源和化工材料。 关键零部件生产:包括动力电池、电机及控制器、电池管理系统(BMS)等。中游产业…

安全帽佩戴识别算法

安全帽佩戴识别算法采用SuiJi-AI人工智能深度学习技术+计算机智能视觉识别算法,且通过规模化的安全帽数据识别训练。安全帽佩戴识别算法借助现场已有的监控摄像头对监控画面中人员着装行为进行实时分析识别。假如检测人员不戴安全帽,SuiJiAi将立即记录和警报,并可将纪录数据…

徘徊行为AI智能分析预警系统

徘徊行为AI智能分析预警系统可以立即对视频监测区域进行实时分析,自动识别监测监控画面中同一角色的来回进出频率,徘徊行为AI智能分析预警系统对多次进出徘徊人员实时检测预警,弥补人为因素的监督盲点。徘徊行为AI智能分析预警系统真正提高了安全监控的效率,可以尽快发现违…

人员徘徊识别系统

人员徘徊识别系统利用现场已有监控摄像头可以实时剖析监控画面中人员异常徘徊行为,当人员徘徊识别系统识别到特殊重要区域(危险区域)附近出现人员来回反复停留时,系统会立即搜抓拍预警并同步异常违规信息到后台,及时通告有关人员留意出现异常的目标,方便及时到现场处理。…

设置socks5代理:访问远程设备所在网络中的所有服务

部署Gemini Gemini使用教程 - 迅捷网络[来送福利] - 博客园 (cnblogs.com) 1.http和socks5代理的区别 2.哪些系统和软件支持socks5代理 1. 操作系统 许多操作系统本身就提供对 SOCKS5 代理的支持,或者可以通过配置或额外的软件来实现 SOCKS5 代理功能。Windows:Windows 原生网…