当前位置: 首页 > 编程日记 > 正文

POJ2796 Feel Good(单调栈)

题意:

给出一列数据,要求一个区间内最小值与区间内数据总和乘积最大值

要点:

还是单调栈,这次我自己写的,先做了几题比较简单的果然还是有效果的,这题也是一样,按点遍历,网上大神做的是直接遍历一次即可,我看不太懂,还是自己写了一个往两侧寻找边界的,比较好理解,注意这题可以开一个sum数组存储第i个数据前的和,这样降低了复杂度,这是一个比较方便的技巧,注意sum数组也要设成long long型,因为题目里数据最大可以是1E6,开始我就是WA在这里了。


15402526Seasonal2796Accepted2512K750MSC++937B2016-04-17 13:57:42
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxn 100005
int stack[maxn], a[maxn];
int l[maxn], r[maxn];
long long sum[maxn];//注意sum数组也要是long long型的int main()
{int n,i,top;while (scanf("%d", &n) != EOF){memset(sum, 0, sizeof(sum));for (i = 1; i <= n; i++){scanf("%d", &a[i]);sum[i] = sum[i - 1] + a[i];}top = 0;for (i = 1; i <= n; i++)//找左边界{while (top > 0 && a[stack[top - 1]] >= a[i])top--;l[i] = top == 0 ? 1 : stack[top - 1] + 1;stack[top++] = i;}top = 0;for (i = n; i >= 1; i--)//找右边界{while (top > 0 && a[stack[top - 1]] >= a[i])top--;r[i] = top == 0 ? n : stack[top - 1] - 1;stack[top++] = i;}long long max = -1, temp;int rr, ll;for (i = 1; i <= n; i++){temp = a[i] * (sum[r[i]] - sum[l[i] - 1]);if (max < temp){max = temp;ll = l[i];rr = r[i];}}printf("%lld\n", max);printf("%d %d\n", ll, rr);}return 0;
}




转载于:https://www.cnblogs.com/seasonal/p/10343777.html

相关文章:

Solr占用CPU持续过高原因查询

线上java进程占用CPU忽高忽低&#xff0c;就是说一下子40%左右&#xff0c;一下子减下去。这台服务器只有Solr&#xff0c;所以估计是Solr在GC。 # jstat -gcutil 2072 2sJVM名词解释参考java内存泄漏的定位与分析 一些术语的中文解释&#xff1a; S0C&#xff1a;年轻…

通过一个案例理解 JWT

原文出自&#xff1a;https://www.pandashen.com JWT 简述 JWT&#xff08;json web token&#xff09;是为了在网络应用环境之间传递声明而基于 json 的开放标准&#xff0c;JWT 的声明一般被采用在身份提供者和服务器提供者间传递被认证的身份信息&#xff0c;以便于从资源服…

gitlab报错 fatal: index-pack failed error: RPC failed; result=18, HTTP code = 200解决方案

gitlab报错 "fatal: index-pack failed error: RPC failed; result18, HTTP code 200"&#xff0c;如下图这个问题网上有些人给出这样的解决方法是不行的&#xff0c; 所谓&#xff1a;git config --globalhttp.postBuffer 24288000 git config --list 最有代表的是…

(10)Spring Boot修改端口号【从零开始学Spring Boot】

Spring boot 默认端口是8080&#xff0c;如果想要进行更改的话&#xff0c;只需要修改applicatoin.properties文件&#xff0c;在配置文件中加入&#xff1a; server.port9090 常用配置&#xff1a; ######################################################## ###EMBEDDED SER…

linux查看文件安全权限,Linux系统下如何查看及修改文件读写权限

查看文件权限的语句&#xff1a;在终端输入:ls -l xxx.xxx (xxx.xxx是文件名)那么就会出现相类似的信息&#xff0c;主要都是这些&#xff1a;-rw-rw-r--一共有10位数其中&#xff1a; 最前面那个 - 代表的是类型中间那三个 rw- 代表的是所有者(user)然后那三个 rw- 代表的是组…

【网摘】检测 iframe 是否加载完成

var iframeSet document.getElementById("iframeSet"); //需要检测的 iframe if(iframeSet.attachEvent) {iframeSet.attachEvent("onload", function() {$("#loading").hide();}); } else {iframeSet.onload function() {$("#loading&q…

Java json转Map,转bean,转Listbean

引用jackson /** * json转Map&#xff0c;转bean&#xff0c;转List<bean> by http://blog.csdn.net/21aspnet/ * 需要jackjson jar包 */ public class JsonUtil {/*** Object转Json*/public static String ObjectToJson(Object value) {try {ObjectMapper mapper new…

JVM实用参数 GC日志

为什么80%的码农都做不了架构师&#xff1f;>>> 原文章地址&#xff1a;http://blog.panaihua.com/archives/151 GC日志是一个很重要的工具&#xff0c;它准确记录了每一次的GC的执行时间和执行结果&#xff0c;通过分析GC日志可以优化堆设置和GC设置&#xff0c;或…

linux 搜索so文件,Linux下查找和安装依赖的.so文件

以解决Webex在Linux下运行问题为例说明查找和安装依赖的.so文件方法&#xff1a;查找依赖的.so文件$ ldd $HOME/.webex/1324/*.so | grep not foundlibgtk-x11-2.0.so.0 > not foundlibgdk-x11-2.0.so.0 > not foundlibXmu.so.6 > not foundlibXtst.so.6 > not fou…

CentOS7.4下 VNC Server的搭建和客户端的连接配置

CentOS7.4下 VNC Server的搭建和客户端的连接配置 服务器版本&#xff1a;CentOS Linux release 7.4.1708 (Core) yum方式安装VNC server yum install tigervnc-server 启动vnc 服务初次启动服务时&#xff0c;按提示设置VNC Service密码&#xff1b;服务成功启动后会在 /root/…

Java生成html为pdf

使用这个&#xff1a; http://wkhtmltopdf.org/ 下载&#xff1a;http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 解压到/usr目录 调用这个bin /usr/wkhtmltox/bin/wkhtmltopdf需要注意如果中文不显示&#xff0c;显示为框框&…

GCD之信号量机制二

在前面GCD之信号量机制一中介绍了通过信号量设置并行最大线程数,依此信号量还可以防止多线程访问公有变量时数据有误&#xff0c;下面的代码能说明。 1.下面是不采用信号量修改公有变量的值 dispatch_group_t groupdispatch_group_create();// dispatch_semaphore_t semapho…

qtdll在linux系统运行,在QT下编写带DLL的程序

注:我的工作目录是: D:\My Documents\MyProject一.运行QtCreator1.新建工程/选择C Library 这里设计被调用的DLL下一步:然后输入类名:它会生成相应的(.h .cpp)下面一路NEXT就好了.二.1.新建一个空工程名为(MyTest) 这里设计调用DLL的主模块输入工程名后完成2.在工程文件内添…

Python 安装selenium

一、报错信息 No module named selenium 二、系统环境 操作系统&#xff1a;Win10 64位 Python版本&#xff1a;Python 3.7.0 三、安装参考 1、使用pip安装selenium pip install selenium 安装不成功 2、网上下载selenium, 地址&#xff1a;http://pypi.python.org/pypi/seleni…

跨域攻击XSS防御

Java的view层可以使用EL和JSTL 后端的ModelAndView增加 mv.addObject("xss", "<script>alert(\"test\")</script>"); View页面 ${xss} <c:out value"${xss}" escapeXml"true"></c:out> <c:out v…

[Core Java® for the Impatient]重载Java2

2019独角兽企业重金招聘Python工程师标准>>> Chapter 2. Object-Oriented Programming Set&#xff08;Mutator Methods&#xff09;方法改变对象的状态&#xff0c;Get&#xff08;accessor methods&#xff09;方法则不&#xff1b;Java中变量不持有对象&#xff…

linux系统与内核,[科普] Linux 的内核与 Linux 系统之间的关系

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在 FHS 协议里&#xff0c;有这样的规定&#xff1a;/bin/ 需要在单用户模式可用的必要命令(可执行文件)&#xff1b;面向所有用户&#xff0c;例如&#xff1a; cat、 ls、 cp。/boot/ 引导程序文件&#xff0c;例如&#xff1a; …

pynput使用简单说明

控制鼠标 1 from pynput.mouse import Button, Controller2 import time 3 4 mouse Controller()5 print(mouse.position)6 time.sleep(3)7 print(The current pointer position is {0}.format(mouse.position))8 9 10 #set pointer positon 11 mouse.position (277, 645) …

linux qt5.7下打地鼠源程序,基于QT的打地鼠游戏

【实例简介】基于QT的一个打地鼠游戏&#xff0c;采用随机数的方法&#xff0c;是地鼠产生随机序列&#xff0c;有得分界面&#xff0c;动画效果也不错&#xff0c;用C进行编程【实例截图】【核心代码】打地鼠└── 打地鼠├── erwei│ ├── Makefile│ ├── Makefi…

事务隔离机制原理深入分析以及MySQL不同隔离级别分场景下实验对比

这是我总结的事务的四种隔离机制&#xff0c;比较好理解&#xff0c;主要是有些地方文字游戏说不清楚很容易混淆&#xff1a; Read Uncommitted&#xff08;读未提交&#xff09;A未完&#xff0c;B已更新&#xff0c;未提交&#xff0c;A读到B已更新的数据&#xff0c;由于未…

cogs 362. [CEOI2004]锯木厂选址

★★★ 输入文件&#xff1a;two.in 输出文件&#xff1a;two.out 简单对比 时间限制&#xff1a;0.1 s 内存限制&#xff1a;32 MB 从山顶上到山底下沿着一条直线种植了n棵老树。当地的政府决定把他们砍下来。为了不浪费任何一棵木…

中小企业低成本快速建站的秘诀——模板建站

从14年至今&#xff0c;小乔已经给很多行业的客户做了不少网站。在跟我咨询建站的这些人当中&#xff0c;其实不乏一些创业初期经济比较紧张的个人/公司。这些个人/公司需要一个网站对外宣传&#xff0c;但又希望可以节省开支&#xff0c;所以他们往往会选择成本低的建站服务&a…

MySQL常用性能分析方法-profile,explain,索引

1.查版本号 无论做什么都要确认版本号&#xff0c;不同的版本号下会有各种差异。 >Select version();2.执行状态分析 显示哪些线程正在运行 >show processlist;下面是完整的信息3.show profile show profile默认的是关闭的&#xff0c;但是会话级别可以开启这个功能&…

MathType在手,公式不求人!

很多论文达人们的论文排版是相当漂亮的&#xff0c;页面也非常整齐美观&#xff0c;即使是理工类的论文&#xff0c;里面有很多的数学符号和公式&#xff0c;排版也是非常整洁&#xff0c;为什么达人们的公式论文能排版的这么完美&#xff0c;而自已却总是不得其门而入&#xf…

Linux系统mongdb还原数据库,linux下mongodb数据库备份与还原

MongoDb数据库备份还原数据库迁移,可视化工具NoSQLBooster for MongoDB 付费版才具有数据导入功能.代价过高,索性采起命令行web数据备份备份命令mongodbmongodump -h dbhost -d dbname -o dbdirectory-h&#xff1a;MongDB所在服务器地址&#xff0c;例如&#xff1a;127.0.0.1…

【逆序对】Ultra - Quicksort

POJ 2299 Ultra-QuickSort 只允许交换&#xff0c;比较相邻的元素&#xff0c; 求最少多少次交换可以使得序列有序 冒泡排序的次数——>数列中逆序对的个数减1——>最终为0 ——>答案为数列中逆序对的个数——> 归并排序求逆序对qwq 注意cnt开long long 不然会炸QA…

Android Touch事件传递机制 二:单纯的(伪生命周期) 这个清楚一点

转载于&#xff1a;http://blog.csdn.net/yuanzeyao/article/details/38025165 在前一篇文章中&#xff0c;我主要讲解了Android源码中的Touch事件的传递过程&#xff0c;现在我想使用一个demo以及一个实例来学习一下Andorid中的Touch事件处理过程。 在Android系统中&#xff0…

SpringBoot使用笔记

其实也是参考官方的&#xff1a;http://spring.io/guides/gs/rest-service/ &#xff0c;在官方代码基础上加入了很多实用的东西&#xff0c;比如运行环境启动命令等等。 官方文档&#xff1a;http://docs.spring.io/spring-boot/docs/current/reference/html/ SpringBoot并不…

linux卸载欧朋浏览器,如何在Centos下安装opera浏览器

如何在Centos下安装opera浏览器 &#xff0c;Opera目前是Linux平台上性能最优的浏览器&#xff0c;而且Opera中国团队本身即定位于Opera的研发中心&#xff0c;主要也是负责全球Linux平台项目的开发&#xff0c;这个版本初步解决了经年来Linux上Opera中文字体显示混乱的问题。我…

1-1 分配内存资源给容器和POD

这一小节讲解如何分配内存请求和对一个容器做内存限制。一个容器被保证拥有足够的内存可以处理请求&#xff0c;但是也不允许使用超过限制的内存。 开始之前 需要拥有一个k8s集群 需要安装好一个kubectl 工具&#xff0c;并且能够与集群通信。 如果没有准备好&#xff0c;你…