博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1806 rmq
阅读量:5161 次
发布时间:2019-06-13

本文共 1135 字,大约阅读时间需要 3 分钟。

找到一个区间内出现最多的数的次数

10 3  //10个数字三次询问-1 -1 1 1 1 1 3 10 10 102 3  1 105 100 1 4 3
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int maxn=1005; 9 int n,m;10 const int MAXN = 100010;11 int dp[MAXN][20];12 int mm[MAXN];13 int a[MAXN],b[MAXN];14 //初始化RMQ, b数组下标从1开始,从0开始简单修改15 void makeRMQ(int n,int b[])16 {17 for(int i=0;i
>1);37 if(a[mid]>=tmp)r=mid;38 else l=mid+1;39 }40 return r;41 }42 int main()43 {44 int i,j,k;45 #ifndef ONLINE_JUDGE46 freopen("1.in","r",stdin);47 #endif48 int q;49 while(scanf("%d",&n)!=EOF)50 {51 if(n==0) break;52 scanf("%d",&q);53 for(i=0;i
=0;i--)56 {57 if(i==n-1) tmp=1;58 else59 {60 if(a[i]==a[i+1]) tmp++;61 else tmp=1;62 }63 b[i]=tmp;64 }65 makeRMQ(n,b);66 while(q--)67 {68 int s,t;69 scanf("%d%d",&s,&t);70 s--,t--;71 int temp=bi_search(s,t);72 int ans=t-temp+1;73 t=temp-1;74 if(s>t) printf("%d\n",ans); //从s到t的数字都相同75 else printf("%d\n",max(ans,rmq(s,t)));76 }77 }78 }

 

转载于:https://www.cnblogs.com/cnblogs321114287/p/4360379.html

你可能感兴趣的文章
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
团队工作第二天
查看>>
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>