POJ 2796 Feel Good (单调栈)
来源:互联网 发布:切片软件 编辑:程序博客网 时间:2024/06/10 22:20
http://poj.org/problem?id=2796
和POJ 2559一样,把计算矩形的长改为前缀和就行。
完整代码:
/*891ms,2716KB*/#include<cstdio>#include<algorithm>using namespace std;const int mx = 100005;__int64 h[mx], sum[mx];int l[mx], r[mx];int main(){//freopen("in.txt", "r", stdin);int n, i, j, ansl, ansr;__int64 ans, tmp;scanf("%d", &n);for (i = 1; i <= n; ++i){scanf("%I64d", &h[i]);sum[i] = sum[i - 1] + h[i];}for (i = 1; i <= n; ++i){j = i;while (j > 1 && h[j - 1] >= h[i]) ///压栈否j = l[j - 1]; ///出栈l[i] = j;}for (i = n; i; --i){j = i;while (j < n && h[j + 1] >= h[i]) ///压栈否j = r[j + 1]; ///出栈r[i] = j;}ans = -1;///注意数据中有0for (i = 1; i <= n; ++i){tmp = h[i] * (sum[r[i]] - sum[(l[i] - 1)]);if (tmp > ans){ans = tmp;ansl = l[i];ansr = r[i];}}printf("%I64d\n%d %d\n", ans, ansl, ansr);return 0;}
0 0
- POJ 2796 Feel Good 单调栈
- poj 2796 feel good(单调栈)
- POJ 2796 Feel Good (单调栈)
- POJ 2796 Feel Good(单调栈)
- POJ 2796 Feel Good -- 单调栈,DP
- poj 2796 Feel Good (单调栈)
- POJ 2796 Feel Good(单调栈)
- POJ:2796 Feel Good(单调栈)
- POJ 2796 Feel Good(单调栈)
- poj 2796 Feel Good(单调栈)
- POJ 2796 Feel Good (单调栈)
- POJ 2796 Feel Good(单调栈)
- poj 2796 Feel Good 单调栈/dp
- 【POJ 2796】 Feel Good(单调栈)
- POJ 2796 Feel Good(单调栈)
- POJ 2796:Feel Good(单调栈)
- poj 2796 Feel Good 单调栈
- [poj 2796 Feel Good] 单调栈
- XML 命名空间(XML Namespaces)
- android Theme使用二
- EasyGame网络游戏服务器解决方案
- 什么是“以管理员身份运行”
- JVM方法内联
- POJ 2796 Feel Good (单调栈)
- Web service是什么?
- CEdit重绘垂直居中显示
- C语言经典算法100例-016-求最大公约数和最小公倍数
- Linux 第一课 学习的方向
- synchronized详解
- 计算几何三维模板
- 数据结构 -- 查找之 二分法查找
- 如何在ElementaryOS(Ubuntu 12.10)上搞定娇羞的Lumia920(Win8 phone)