单调栈经典模板(Codeforces Round #305 (Div. 2), problem: (D) Mike and Feet)
2015-07-25 03:06
330 查看
#include <bits/stdc++.h> using namespace std; const int maxn = 200000 + 10; stack<int> stk; int a[maxn] , dpl[maxn] , dpr[maxn] , ans[maxn]; int main() { int n; scanf("%d",&n); for(int i = 1; i <= n; i++) scanf("%d",&a[i]); for(int i = 1; i <= n; i++) while(!stk.empty() && a[stk.top()] >= a[i]) stk.pop(); if(stk.empty()) dpl[i] = 1; else dpl[i] = stk.top()+1; stk.push(i); } while(!stk.empty()) stk.pop(); for(int i = n; i >= 1; i--) { while(!stk.empty() && a[stk.top()] >= a[i]) stk.pop(); if(stk.empty()) dpr[i] = n; else dpr[i] = stk.top()-1; stk.push(i); } /*memset(ans , 0 , sizeof(int)*(n+1)); for(int i = 1; i <= n; i++) ans[dpr[i]-dpl[i]+1] = max(ans[dpr[i]-dpl[i]+1] , a[i]); for(int i = n-1; i >= 1; i--) ans[i] = max(ans[i] , ans[i+1]); for(int i = 1; i <= n; i++) printf("%d%c",ans[i]," \n"[i == n]);*/ return 0; }
[/code]
相关文章推荐
- Fedora14下qt开发环境的安装
- HTML--Note3--link
- HTML--Note2--list
- loadrunner12 javascript
- HTML--Note1--text
- nodeJs 脚本 WatchPost.js 本地开发过程中直接与服务器进行文件同步
- E11 css hack
- bower下载依赖js包到指定文件夹目录
- JavaScript相关
- js省市联动
- JavaScript对Cookie进行读写操作实例
- JavaScript类继承及实例化的方法
- javascript单例模式的简单实现方法
- jQuery菜单插件用法实例
- javascript实现信息增删改查的方法
- 基于javascript实现单选及多选的向右和向左移动实例
- javascript解析xml实现省市县三级联动的方法
- javascript页面倒计时实例
- javascript文件加载管理简单实现方法
- javascript创建动态表单的方法