BZOJ 4241 分块

思路:
考虑分块
f[i][j]表示从第i块开头到j的最大值
cnt[i][j]表示从第i块开始到序列末尾j出现了多少次
边角余料处理一下就好啦~

//By SiriusRen
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=100050;
int n,q,Block,a[N],block[N],cpy[N],u;
int xx,yy,cnt[333][N],top,stk[N],num[N];
typedef long long ll;ll f[333][N],ans;
int main(){scanf("%d%d",&n,&q),Block=sqrt(n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),block[i]=(i-1)/Block+1,cpy[i]=a[i];sort(cpy+1,cpy+1+n),u=unique(cpy+1,cpy+1+n)-cpy-1;for(int i=1;i<=n;i++)a[i]=lower_bound(cpy+1,cpy+1+u,a[i])-cpy;for(int i=1;i<=block[n];i++){ll now=0;for(int j=lower_bound(block+1,block+1+n,i)-block;j<=n;j++)cnt[i][a[j]]++,now=max(now,(ll)cnt[i][a[j]]*cpy[a[j]]),f[i][j]=now;}while(q--){scanf("%d%d",&xx,&yy),ans=f[block[xx]+1][yy],top=0;int temp=lower_bound(block+1,block+1+n,block[yy])-block;for(int i=temp;i<=yy;i++)num[a[i]]++,stk[++top]=a[i];temp=lower_bound(block+1,block+1+n,block[xx]+1)-block;for(int i=xx;i<temp;i++){num[a[i]]++,ans=max(ans,(ll)(cnt[block[xx]+1][a[i]]-cnt[block[yy]][a[i]]+num[a[i]])*cpy[a[i]]);stk[++top]=a[i];}temp=lower_bound(block+1,block+1+n,block[yy])-block;for(int i=temp;i<=yy;i++)ans=max(ans,(ll)(cnt[block[xx]+1][a[i]]-cnt[block[yy]][a[i]]+num[a[i]])*cpy[a[i]]);for(int i=1;i<=top;i++)num[stk[i]]=0;printf("%lld\n",ans);}
}

 

 

这里写图片描述

转载于:https://www.cnblogs.com/SiriusRen/p/6532021.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

common lisp 学习第一天 初步接触

http://common-lisp.net/project/lispbox/lispbox 集成了Emacs、Slime和CCL。解压后直接运行lispbox.bat即可//(quote x) 返回 x&#xff0c;我们简记为 x> (quote x)x> xx//(atom x) 当 x 是一个原子或者空表时返回原子 t&#xff0c;否则返回NIL。在 Common Lisp 中我们…

oracle数据泵导入分区表,数据泵导入分区表统计信息报错(七)

其实问题的引出是由于出现第一篇文章中描述的问题&#xff0c;不过随着问题的深入研究&#xff0c;挖掘出了一些隐藏的很深的问题&#xff0c;不过问题的研究也慢慢脱离了原本的问题。在解决了表统计信息锁定的问题后&#xff0c;在回过头看看导致第一篇文章中错误的具体原因。…

django ORM创建数据库方法

1、指定连接pymysql(python3.x) 先配置_init_.py import pymysqlpymysql.install_as_MySQLdb() 2、配置连接mysql文件信息 settings.py DATABASES {default: {ENGINE: django.db.backends.mysql, NAME: django_orm, #你的数据库名称USER: root, #你的数据库用户名PASSWOR…

common lisp 学习第二天 简单数据库操作

//简单数据操作单一记录> (defun make-cd (title artist rating ripped)(list :title title :artist artist :rating rating :ripped ripped))make-cd> (make-cd "Roses" "Kathy Mattea" 7 t)(:TITLE "Roses" :ARTIST "Kathy Mattea&…

通过配置文件登陆有密码的mysql不需要输入密码

下面方式通过配置文件登陆有密码的mysql&#xff0c;不需要输入密码。 &#xff08;1&#xff09;先配置一个.my.cnf配置文件。 [client]userxxxxpasswordxxxxxx (2)直接登陆mysql服务 [rootlocalhost scripts]# HOME/var/lib/zabbix mysql 直接登陆&#xff0c;这里的HOME一…

并联机械臂的pid控制Matlab,机械手PID控制(chap2_1ctrl.m)

【实例简介】【实例截图】【核心代码】function [sys,x0,str,ts] spacemodel(t,x,u,flag)switch flag,case 0,[sys,x0,str,ts]mdlInitializeSizes;case 3,sysmdlOutputs(t,x,u);case {2,4,9}sys[];otherwiseerror([Unhandled flag ,num2str(flag)]);endfunction [sys,x0,str,…

common lisp 学习第三天 函数、注释

//函数定义(defun name(parameter*函数参数)"Optional documentation string.函数描述"body-form*函数体)函数名称风格frob-widget函数描述&#xff1a;(documentation foo function)获取foo函数的描述函数体由任意数量的lisp表达式构成&#xff0c;在函数被调用时依…

【计算机视觉】基于OpenCV的人脸识别

一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库。它包含成千上万优化过的算法&#xff0c;为各种计算机视觉应用提供了一个通用工具包。根据这个项目的关于页面&#xff0c;OpenCV 已被广泛运用在各种项目上&#xff0c;从谷歌街景的图片拼接&#xff0c;到交互艺术展…

Mysql显示创建表的sql语句

show create table 表名 返回 create table A( ……

oracle parallel_max_servers,PARALLEL_MAX_SERVERS参数

PARALLEL_MAX_SERVERS参数用于设置系统中允许的最大并行进程数。Oracle的文档对于这个参数的描述如下&#xff1a;PARALLEL_MAX_SERVERS specifies the maximum number of parallelexecution processes and parallel recovery processes for aninstance. As demand increases, …

[转]python新手必碰到的问题---encode与decode,中文乱码--转载

edu.codepub.com/2009/1029/17037.php 这个问题在python3.0里已经解决了。 这有篇很好的文章&#xff0c;可以明白这个问题: 为什么会报错“UnicodeEncodeError: ascii codec cant encode characters in position 0-1: ordinal not in range(128)”&#xff1f;本文就来研究一下…

Mysql 休眠连接过多,有可能导致“Too many connections”的错误

查看所有连接 show processlist设置休眠连接超时时间60秒&#xff1a;my.ini中mysqld节中添加wait-timeout60可以解决Mysql.Data.dll连接释放后连接没有真正断开的问题。

检测端口是否能连通

telnet 192.168.0.111 801检测192.168.0.111的801端口是否能连通&#xff0c;如果提示不能连接则有可能是防火墙开启或者端口没有监听程序。window7需要安装telnet客户端才能执行该命令。

oracle 其他表空间,Oracle查询表空间使用情况以及其他查询

alter system kill session 436,35123;7.RAC环境中锁查找SELECT inst_id,DECODE(request,0,Holder: ,Waiter: )||sid sess,id1, id2, lmode, request, type,block,ctimeFROM GV$LOCKWHERE (id1, id2, type) IN(SELECT id1, id2, type FROM GV$LOCK WHERE request>0)ORDER BY…

四则运算题目生成程序(基于控制台)

基于控制台的四则运算 代码地址 a.需求分析 运算符为 , −, , 除了整数以外&#xff0c;还要支持真分数的四则运算&#xff0c;真分数的运算&#xff0c;例如&#xff1a;1/6 1/8 7/24要求能处理用户输入的真分数&#xff0c; 如 1/2, 5/12 等并且要求能处理用户的输入&#…

前端学习(2306):react之组件使用

Home.js import React, {Component} from react;class Home extends Component {render() {return (<div><div>你好我是组件{parseInt(Math.random()*10)}</div><div>你好我是组件2{parseInt(Math.random()*10)}</div></div>);} }export …

input的属性AutoComplete——关闭浏览器文本框自动提示

1. 有时候我们并不需要AutoComplete&#xff0c;例如需要用户自己再次输入而非自动完成。只要将所在表单元素的autocomplete属性设置为off即可。<form>请双击文本框 <input type"text" name"wd" autocomplete"off"> <input type&…

oracle过滤器基础,示例过滤器表达式 (Oracle Solaris Studio 12.2:性能分析器)

示例过滤器表达式本节介绍可通过 er_print -filters 命令以及在分析器过滤对话框中使用的过滤器表达式的示例。利用 er_print -filters 命令&#xff0c;过滤器表达式用单引号引起来&#xff0c;如下所示&#xff1a;er_print -filters FNAME("myfunc") SOME IN USTA…

前端学习(2306):react之组件使用之图片使用

Home.js import React, {Component,Fragment} from react; import ImgA from "../assset/index.jpg" class Home extends Component {render() {return (<Fragment><div>你好我是组件{parseInt(Math.random()*10)}</div><div>你好我是组件2…