POJ 2769
http://poj.org/problem?id=2796
题意:求n个数的和乘以这n个数中的最小值的积最大的数,以及其范围。
思路:求每一个数两边的比其大的数的和,再乘以这个数。还有一个范围,用单调栈找以及记录。
这个题和2559差不多,就是多了一个对数字的求和。
#include <stdio.h>
#include <iostream>
#include <stack> #define x 100010 using namespace std; stack<long long >s;
long long l[x],r[x],a[x],sum,ans,z[x],m,loc; int main(){
int n;
scanf("%d",&n);
ans=;
z[]=,r[]=,l[]=,l[]=,r[n]=n; //要考虑案例是1 0 的情况。
for(int i=;i<=n;i++){ scanf("%lld",&a[i]);
z[i]+=z[i-]+a[i]; //z[m]-z[n-1]就是从m到n的a[i]之和。
}
a[]=-,a[n+]=-;
while(!s.empty()){ s.pop();
}
s.push(); for(int i=;i<=n;i++){ for(m=s.top();a[m]>=a[i];m=s.top()) s.pop(); l[i]=m+; s.push(i);
}
while(!s.empty()) s.pop(); s.push(n+); for(int i=n;i>;i--){
sum=; for(m=s.top();a[m]>=a[i];m=s.top())
s.pop();
r[i]=m-;
s.push(i);
if((z[r[i]]-z[l[i]-])*a[i]>ans) {ans=(z[r[i]]-z[l[i]-])*a[i];loc=i;}
} printf("%lld\n%lld %lld\n",ans,l[loc],r[loc]);
return ;
}
POJ 2769的更多相关文章
- poj 2769 感觉♂良好 (单调栈)
poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...
- poj 2769 Reduced ID Numbers 同余定理
链接:http://poj.org/problem?id=2769 题意:寻找数m,是的对于n个数的余数不同 思路:暴力,优化:同余部分不用测试 代码: #include <iostream&g ...
- poj 2769 Reduced ID Numbers(memset使用技巧)
Description T. Chur teaches various groups of students at university U. Every U-student has a unique ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
随机推荐
- BloomFilter 与 Cuckoo Filter
BloomFilter 与 CuckooFilter Bloom Filter 原理 Bloom Filter是一种空间效率很高的随机数据结构,它的原理是,当一个元素被加入集合时,通过K个相互独立的H ...
- ssh-keygen不是内部或外部命令
在**/Git/usr/bin目录下找到ssh-keygen.exe,将**/Git/usr/bin路径添加到环境变量中
- Java内存区域-- 运行时数据区域
jvm在执行Java程序时,会把它所管理的内存划分为若干个不同的数据区.这些区域都有各自的用途,以及创建和销毁的时间. 有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销 ...
- NGINX将PHP带参数的URL地址重定向二级或多级域名访问
今天项目中有一个手机站点需要用*.m.domain.com的三级域名访问. 如手机站点的访问网址为m.domain.com,手机下面的会员实际访问地址为index.php?username=$user ...
- cas单点登录 SSO 的实现原理
原文出处: cutesource 欢迎分享原创到伯乐头条 单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户 ...
- winScp如何通过隧道代理进行远程连接
目标机器:a ip为192.168.2.150(内网ip) a.xxx.x.xx(外网ip) 跳板机器:b ip为192.168.2.151(内网ip) b.xxx.xx.xx(外网ip) 目标机 ...
- linuxMint install shuruma
http://my.oschina.net/u/1446273/blog/306053 http://blog.sina.com.cn/s/blog_5d406a1b0101jlgn.html htt ...
- Memcached存储命令 - replace
Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值). 如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED. replace 命令的基 ...
- 【CISP笔记】数据库及应用安全
数据库安全特性检查工具美国应用安全公司的App Detective英国下一代软件公司的NGS SQuirrel 常见应用安全威胁 网络层面拒绝服务.电子欺骗.嗅探.……系统层面Web服务漏洞.配置错误 ...
- 有利于SEO优化的DIV+CSS的命名规则小结
可以先去这里温习一下CSS和HTML的知识!DIV+CSS规范命名大全集合 CSS开发技巧整理 一.CSS文件及样式命名 1.CSS文件命名规范 全局样式:global.css/master.css ...