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;}elsedew[++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

转载于:https://www.cnblogs.com/butterflydew/p/10331929.html

AT1219 歴史の研究 解题报告相关推荐

  1. AT1219 [JOI2013]歴史の研究

    回滚莫队 题目描述 IOI国历史研究的第一人--JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. 日记 ...

  2. [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)

    Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...

  3. 2016-11-17试题解题报告

    2016-11-17试题解题报告 By shenben 水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知 ...

  4. 数据结构荣誉课-第一次实验-解题报告

    JLU-数据结构荣誉课-第一次实验-解题报告 一.重复计数 题目 思路 参考代码 二.报数游戏 题目 思路 参考代码 三.算术表达式计算 题目 思路 参考代码 四.最喜爱的序列 题目 思路 单调队列 ...

  5. 2021-09-07 停课集训R8解题报告

    停课集训R8解题报告 小萌新到第5天才有空写题解,心都碎了 哼,哼,啊啊啊啊啊啊啊啊啊啊啊啊! R8:DP初级1 实话说,以前DP是我最讨厌的类型. 今天只A了2道题.可以说是十分痛苦 T1 问题 A ...

  6. SHU 第十届程序设计联赛(夏季赛) 解题报告

    Problem A: 一日三餐开销 水题,基本上都过了,直接贴代码: 1 #include <iostream> 2 #include <cstdio> 3 using nam ...

  7. 【解题报告】《LeetCode零基础指南》(第三讲) 循环

    ☘前言☘ 今天是九日集训第二天,我会记录一下学习内容和题解,争当课代表0.0. 注意!!!!题解的解法一是今天要掌握的解法,解法2是学有余力再研究,涉及到后面知识点0.0 链接:<LeetCod ...

  8. 人生第一场CTF的解题报告(部分)

    解题报告 濮元杰部分: 王者归来: 120 场景 小王入职了一段时间,最近有点无聊.Web安全项目不多,白天看着其他项目组的同事忙得热火朝天,小王有点坐不住了,这也许是新人都会有的想法,乐于助人.想到 ...

  9. 攻防世界XCTF-MOBILE入门9题解题报告

    说实话,这几天被逆向的恐怖思维,深深的吓着了,真的要抱腿腿了,叫我失眠了好几晚,我觉得逆向分析是CTF中最难的,求腿腿指点迷津啊,我决定不闷头自己研究了.@欠费烦 感谢大佬提供的帮助,让我有了继续刷下 ...

最新文章

  1. spring-security权限控制详解
  2. php pdo字符,关于php:真正的转义字符串和PDO
  3. JS里的onclick事件
  4. php中arraymultisort,php 数组函数array_multisort()用法
  5. 理论基础 —— 排序 —— 桶排序
  6. python列表元素下标是什么_python列表中元素插入位置总结
  7. 改了两天的bug,一个JWT解决了。。。
  8. 一位程序员 8 年的物联网奋斗史
  9. 西门子plm_西门子PLM组件之形状搜索(支持工业软件国产自主可控)
  10. 1137. 第 N 个泰波那契数 动态规划
  11. Java实现基础坦克大战【含源码】
  12. asp.net助学贷款管理系统案例
  13. 安装mysql-community-server报错缺少libaio依赖
  14. Python编程实现预剪枝的CART决策树
  15. 基于FP5207的5V升12V电路设计
  16. 快速部署开源的 Java 博客系统 Tale
  17. SCOM2019安装监控代理
  18. 编写程序,输出如下图形2
  19. 云耀云服务器和弹性云服务器有哪些区别?
  20. Java 第十一届 蓝桥杯 省模拟赛 小明植树(DFS)

热门文章

  1. Flume架构以及应用介绍[转]
  2. 浦发银行:开展互联网金融业务是与狼共舞,如何才能不失阵地?
  3. UVA 10555 - Dead Fraction(数论+无限循环小数)
  4. 判断画布中有重复纪录
  5. 避开使用XAML的性能陷阱
  6. 明智Office之文件实时同步
  7. oracle flash_cache,11gR2新特性之二 - Flash Cache 的SSD支持
  8. js 根据公历日期 算出农历_给孩子过农历生日,还是阳历生日?家长不要盲从,看看这些再决定...
  9. python中seaborn_python的seaborn模块
  10. 怎么看笔记本电脑的配置参数_电脑参数怎么看?教你看懂电脑各种配置