博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P2681 众数
阅读量:6932 次
发布时间:2019-06-27

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

P2681 众数

题目背景

Alice和Bob玩游戏

题目描述

Alice现在有一个序列a1、a2...an

现在她需要Bob支持询问一个区间内的众数,还要支持修改一个位置的ai

输入输出格式

输入格式:

 

第一行两个整数n,m

第二行n个整数,表示a1..an

接下来m行,每行3个整数,flag,x,y

如果flag=0,表示询问[x,y]区间内的众数,如果有多个输出较小的

如果flag=1,表示将a[x]改为y

 

输出格式:

 

对于每个flag=0的询问,每行输出一个整数表示答案

 

输入输出样例

输入样例#1:
 
5 31 1 2 2 10 1 41 2 30 1 4
输出样例#1:
 
12

 

 

 

 

 

 

说明

对于100%的数据n,m<=1000

对于查询操作满足x<=y

任意时刻0<ai<=1e9

#include
#include
#include
#include
#define N 1010using namespace std;int n,m,p,x,y,s,sum,ans,a[N],b[N],maxn;int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int work(int x,int y){ for(int i=x;i<=y;i++) b[++s]=a[i]; sort(b+1,b+1+s); for(int i=2;i<=s;i++) if(b[i]==b[i-1]) sum++; else { if(sum>maxn) maxn=sum,ans=b[i-1]; sum=1; } if(sum>maxn) maxn=sum,ans=b[s]; printf("%d\n",ans);}int main(){ n=read(),m=read(); for(int i=1;i<=n;i++) a[i]=read(); while(m--) { s=0,maxn=0,sum=1; p=read(),x=read(),y=read(); if(p==0) work(x,y); else a[x]=y; } return 0;}

 

转载于:https://www.cnblogs.com/z360/p/8025080.html

你可能感兴趣的文章
一起谈.NET技术,不要在using语句中调用WCF服务
查看>>
四大最被高估的安全技术 用户感觉良好其实不然
查看>>
分析称iPhone漏洞或致手机受钓鱼攻击
查看>>
浅析Google Chrome 2.0浏览器安全性能
查看>>
WPF中使用amCharts绘制“.NET技术”股票K线图
查看>>
不开辟用于交换数据的临时空间,如何完成字符串的逆序
查看>>
分析网站配色的Firefox插件[前端工具]
查看>>
版本控制-git
查看>>
一个最新发现,原来程序员的最终归宿在这里。
查看>>
Tessnet2图片识别(2)
查看>>
webSocket ws协议测试
查看>>
jquery开头
查看>>
IoT设备程序开发及编译环境搭建初体验
查看>>
云享 值得一用的在线文档即时通讯平台 新用户持续免费
查看>>
生成N个不相等的随机数
查看>>
HTTPDNS成为移动互联网的标配–原因与原理解析(转)
查看>>
Flex 布局教程:语法篇
查看>>
js 实现动态key value(JSON字符串注意事项:key和value都要用双引号,官网指定用双引号)...
查看>>
统一社会信用代码=营业执照注册号 + 营业执照注册号+营业执照注册号
查看>>
10 款最佳剪贴板管理器
查看>>