https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
 收藏
 关注

定义一个区间的值为其众数出现的次数
现给出n个数,求将所有区间的值排序后,第K大的值为多少。

众数(统计学/数学名词)_百度百科

Input
第一行两个数n和k(1<=n<=100000,k<=n*(n-1)/2)
第二行n个数,0<=每个数<2^31
Output
一个数表示答案。
Input示例
4 2
1 2 3 2
Output示例
2

二分区间的值 x (logn)
枚举一个右端点,记录[l,r]之间每个数的出现个数(离散化,map统计)
如果一个数在[l,r]中的出现个数>=x,则 当 r 属于[r+1,n] 中时,同样满足
满足时,不断缩小l,判断每个区间的情况 (o(n))
nlogn
 #include <algorithm>
#include <cstring>
#include <cstdio> inline void read(int &x)
{
x=; register char ch=getchar();
for(; ch>''||ch<''; ) ch=getchar();
for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
} const int N();
int n,k,b[N]; struct Node {
int num,id;
bool operator < (const Node&x)const
{
return num<x.num;
}
}a[N]; int L,R,Mid,ans,cnt[N];
inline bool check(int x)
{
memset(cnt,,sizeof(cnt));
int l=,r=,ret=;
for(; r<=n; ++r)
{
cnt[b[r]]++;
if(cnt[b[r]]>=x)
{
ret+=n-r+;
cnt[b[l++]]--;
for(; cnt[b[r]]>=x&&l<r; )
{
ret+=n-r+;
cnt[b[l++]]--;
}
}
if(ret>=k) return ;
}
return ;
} int Presist()
{
read(n),read(k);
for(int i=; i<=n; ++i) read(a[i].num),a[i].id=i;
std::sort(a+,a+n+);
for(int i=; i<=n; ++i)
b[a[i].id]=(a[i].num!=a[i-].num)?++a[].id:a[].id;
for(L=,R=n; L<=R; )
{
Mid=L+R>>;
if(check(Mid))
{
ans=Mid;
L=Mid+;
}
else R=Mid-;
}
printf("%d",ans);
return ;
} int Aptal=Presist();
int main(int argc,char**argv){;}

最新文章

  1. APP UI设计及切图规范
  2. [Asp.net 开发系列之SignalR篇]专题三:使用SignalR实现聊天室的功能
  3. Xcode Alcatraz插件管理介绍和使用
  4. 几个app maker的网站
  5. apache 2.4 You don&#39;t have permission to access / on this server
  6. 引入css ,使用@import和link的方式
  7. 使用 Python 进行并发编程 -- asyncio (未完)
  8. JAVA2015086第十一周作业
  9. 高质量PHP代码的50个实用技巧必备(下)
  10. Linux指令--nl
  11. iOS中 GCD-Grand Central Dispath 多线程 UI_21
  12. Pytorch tutorial 之Transfer Learning
  13. 学习笔记_Cocos Creator_继承组件单例
  14. 田螺便利店—PyCharm安装第三方库
  15. 原生js实现ajax与jquery的ajax库,及json
  16. Java 虚拟机:互斥同步、锁优化及synchronized和volatile
  17. 前端入门CSS(1)
  18. python 9*9乘法口诀表
  19. svn关键词BASE, HEAD, COMMITTED, PREV的深入理解
  20. VPS性能综合测试(6):UnixBench跑分工具测试

热门文章

  1. div里面整齐的字体样式,所有浏览器都兼容
  2. negroni-gzip源码简单分析解读
  3. http的请求与响应-----content-type
  4. vscode增加sftp扩展
  5. RGB、YUV和YCbCr介绍【转】
  6. Nexus环境搭建
  7. Which dispatch method would be used in Swift?
  8. js 或jquery定义方法时,参数不固定是怎么实现的
  9. java线程池 多线程搜索文件包含关键字所在的文件路径
  10. opencv读图片错误,已解决