D. Mike and Feet---cf548D(最值)
2015-12-02 10:29
393 查看
题目链接:http://codeforces.com/problemset/problem/548/D
给你n个数,对于(1,n)长度,让你找到线段的最小值的最大值是多少
View Code
给你n个数,对于(1,n)长度,让你找到线段的最小值的最大值是多少
#include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<algorithm> #define N 200050 #define INF 1e16 #define met(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long LL; int a , ans , n, L , R ; int main() { while(scanf("%d", &n)!=EOF) { a[0]=-1, a[n+1]=-1; for(int i=1; i<=n; i++) scanf("%d", &a[i]); for(int i=1; i<=n; i++)///以a[i]为最小值的左边界; { int j = i-1; while(a[j]>=a[i])j=L[j]; L[i] = j; } for(int i=n; i>=1; i--)///以a[i]为最小值的右边界; { int j=i+1; while(a[j]>=a[i])j=R[j]; R[i] = j; } for(int i=1; i<=n; i++) { int len=R[i]-L[i]-1; ans[len]=max(ans[len], a[i]);///ans[len]表示长度为len的最小值,和当前的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], i==n?'\n':' '); } return 0; }
View Code
相关文章推荐
- jquery图片预览
- HTML标签自定义属性
- JS弹出框,弹出层
- JS操作DOM元素属性和方法
- codeforces 472BDesign Tutorial: Learn from Life(简单贪心)
- js数组方法
- Hadoop DataNode与DFSClient交互
- 在html页面中展示JSON
- 原生JavaScript实现异步多文件上传
- 9款经典华丽的CSS3分享按钮
- Opencv——新版本2.4.2简介&FREAK和ORB特征描述子效果对比features2d
- HTML 5怎么就成了RIA“杀手”?
- 百度2015前端研发笔试卷
- jquery 插件应用 下拉框中带有搜索框
- Google Protocol Buffer 的使用和原理
- ajaxupload.js上传报错处理方法
- JSP入门:页面脚本标识
- 前端工程——基础篇
- JNI Local Reference Changes in ICS
- Nodejs-connect 中间件