AT1219 歴史の研究 解题报告
AT1219 歴史の研究
题意
给定一个长为\(n\)的序列\(\{a\}\),询问区间\(a*cnt_a\)的最大值,即某个值乘上出现次数
回退莫队板子
只右移右指针和左指针每次回到块结尾即可。
Code:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define ll long long
const int N=1e5+10;
using std::max;
using std::min;
int n,q,yuy[N],a[N],bee[N];
struct node
{
int l,r,lp,id;
node(){}
node(int l,int r,int lp,int id){this->l=l,this->r=r,this->lp=lp,this->id=id;}
bool friend operator <(node a,node b){return a.lp==b.lp?a.r<b.r:a.lp<b.lp;}
}dew[N];
ll ans,tans,Ans[N];
void add(int p)
{
++bee[a[p]];
ans=max(ans,1ll*bee[a[p]]*yuy[a[p]]);
}
int main()
{
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++) scanf("%d",a+i),yuy[i]=a[i];
std::sort(yuy+1,yuy+1+n);
int m=std::unique(yuy+1,yuy+1+n)-yuy-1;
for(int i=1;i<=n;i++) a[i]=std::lower_bound(yuy+1,yuy+1+m,a[i])-yuy;
int B=sqrt(n)+1,qn=0;
for(int l,r,i=1;i<=q;i++)
{
scanf("%d%d",&l,&r);
if(r-l<=B)
{
ans=0;
for(int j=l;j<=r;j++)
{
++bee[a[j]];
ans=max(ans,1ll*bee[a[j]]*yuy[a[j]]);
}
Ans[i]=ans;
for(int j=l;j<=r;j++)
bee[a[j]]=0;
}
else
dew[++qn]=node(l,r,(l-1)/B+1,i);
}
std::sort(dew+1,dew+1+qn);
for(int l,r,bcnt=0,i=1;i<=qn;i++)
{
if(dew[i].lp!=bcnt)
{
bcnt=dew[i].lp;
ans=0;
memset(bee,0,sizeof bee);
l=min(dew[i].lp*B,n)+1,r=l-1;
}
while(r<dew[i].r) add(++r);
tans=ans;
while(l>dew[i].l) add(--l);
Ans[dew[i].id]=ans;
int tl=l;
ans=tans,l=min(dew[i].lp*B,n)+1;
for(int j=tl;j<l;j++) --bee[a[j]];
}
for(int i=1;i<=q;i++) printf("%lld\n",Ans[i]);
return 0;
}
2019.1.28
AT1219 歴史の研究 解题报告的更多相关文章
- AT1219 歴史の研究 回滚莫队
可在vj上提交:https://vjudge.net/problem/AtCoder-joisc2014_c 题意: IOI 国历史研究的第一人--JOI 教授,最近获得了一份被认为是古代 IOI 国 ...
- AT1219 歴史の研究
附带权值的类区间众数问题?不是很好策啊 发现题目没有强制在线,而且也只有询问操作,那么可以考虑莫队 但是这里的莫队有一个很显著的特征,插入的时候很好维护答案,但是删除的时候不好回退 那么有没有什么办法 ...
- AT1219 歴史の研究[回滚莫队学习笔记]
回滚莫队例题. 这题的意思大概是 设 \(cnt_i\) 为 l ~ r 这个区间 \(i\) 出现的次数 求\(m\) 次询问 求 l~r 的 max {\(a_i\) * \(cnt_i\)} \ ...
- [JOISC2014]歴史の研究/[BZOJ4241]历史研究
[JOISC2014]歴史の研究/[BZOJ4241]历史研究 题目大意: 一个长度为\(n(n\le10^5)\)的数列\(A(A_i\le10^9)\),定义一个元素对一个区间\([l,r]\)的 ...
- 题解 AT1219 【歴史の研究】
莫队 简单分析:题面含有IOI(惊),可知此题是IOI(数字三角形)难度(逃). 思路:回滚莫队 当然很多人都是抱着学回滚莫队的目标来看这道题的,所以这里介绍一下回滚莫队. 1.按莫队的思路讲询问排序 ...
- [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)
Description “我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力.”——<The Grimoire of Marisa>雾雨魔理 ...
- 【未完成0.0】Noip2012提高组day2 解题报告
第一次写一套题的解题报告,感觉会比较长.(更新中Loading....):) 题目: 第一题:同余方程 描述 求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解. 格式 输入格式 输入只有一 ...
- ZOJ 1093 Monkey and Banana (LIS)解题报告
ZOJ 1093 Monkey and Banana (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- 人生第一场CTF的解题报告(部分)
解题报告 濮元杰部分: 王者归来: 120 场景 小王入职了一段时间,最近有点无聊.Web安全项目不多,白天看着其他项目组的同事忙得热火朝天,小王有点坐不住了,这也许是新人都会有的想法,乐于助人.想到 ...
随机推荐
- QT 小总结
遇到的问题: 1:在debug模式下可以顺利执行,但是换到release模式下没法执行了.会显示 exited with code 1 . 解决办法:把产生的release文件放到QT的bin库下,看 ...
- vs2017安装
每次安装包都搞的很大,而且出各式各式的问题. 安装程序清单签名失败 运行'vs_Enterprise.exe'时,出现'安装程序清单签名失败'的错误,直接删除'vs_installer.opc'文件, ...
- windows 脚本
sudo.vbs http://blog.csdn.net/qidi_huang/article/details/52242053 c:\windows\sudo.vbs 'ShellExecute ...
- 分布式监控系统Zabbix-图形集中展示插件Graphtree安装笔记
Zabbix想要集中展示图像,唯一的选择是screen,后来zatree解决了screen的问题,但性能不够好.Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的图形展示问题, ...
- Scrum Meeting NO.9
Scrum Meeting No.9 1.会议内容 2.任务清单 徐越 序号 近期的任务 进行中 已完成 1 代码重构:前端通讯模块改为HttpClient+Json √ 2 "我" ...
- ASP.NET Forms验证
/// <summary> /// 执行用户登录操作 /// </summary> /// <param name="config">授权配置信 ...
- lumen或者laravel安装指定版本
方法一 安装器安装:缺点不能安装指定版本 composer global require "laravel/lumen-installer" lumen new blog comp ...
- 推荐一个php7+ mongodb三方类
373 次阅读 · 读完需要 8 分钟 5 由于项目需要,把项目升级到了php7.但是升级了之后发现mongo扩展不能用了.php7.0以上只支持mongodb扩展了.而mongodb扩展的驱 ...
- [转帖]Windows7 结束更新 以及后期更新花费。
你不应该为Windows 7更新付费的三个原因 https://www.linuxidc.com/Linux/2019-02/156777.htm 对Windows 7的支持将在2020年1月结束,这 ...
- Android控件第4类——ProgressBar
ProgressBar是进度条,是比较常用的控件.它有一个抽象的子类——AbsSeekBar,AbsSeekBar有两个比较常用子类,SeekBar.RatingBar. 1.ProgressBar, ...