CF305 Mike and Feet 单调栈(求每个长度对应的最小数字)
来源:互联网 发布:c语言成绩管理系统6.0 编辑:程序博客网 时间:2024/06/16 06:11
题目链接:http://codeforces.com/contest/548/problem/D
单调栈:类似于poj2559的做法,将更新最大面积改为更新ans。(可参照http://blog.csdn.net/alongela/article/details/8230739)
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N = 200005;struct node{ int height,width;};node stack[N];//单调栈int ans[N],h[N];//ans记录结果,h输入序列int main(){int n,x;while(~scanf("%d",&n)&&n){ memset(ans,0,sizeof(ans)); for(int i=0;i<n;i++){ scanf("%d",&x); h[i]=x; } h[n++]=0;//因为输入序列>0,所以后加0处理最后一个数就可以全部出栈 int top=0; for(int i=0;i<n;i++){ int tmp=0; //需要累加的宽度 while(top>0&&stack[top-1].height>=h[i]){ int ls=stack[top-1].width+tmp; if(stack[top-1].height>ans[ls]) ans[ls]=stack[top-1].height; tmp+=stack[top-1].width; --top;//出栈 } stack[top].height=h[i]; stack[top].width=tmp+1; ++top;//进栈 } for(int i=n-1;i>=1;i--) ans[i]=max(ans[i+1],ans[i]); //单调栈只更新了值发生变化的点。所以在此处更新:未处理的点的值=(最近的宽度比它的点的值) for(int i=1;i<n-1;i++) printf("%d ",ans[i]); printf("%d\n",ans[n-1]);}return 0;}
0 0
- CF305 Mike and Feet 单调栈(求每个长度对应的最小数字)
- CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
- Mike and Feet(单调栈)
- CF D. Mike and Feet 单调栈的运用
- Codeforces #548D Mike and Feet(单调栈)
- CodeForces - 548D Mike and Feet(单调栈)
- Codeforces Round #305 Mike and Feet(单调栈)
- Codeforces 547B Mike and Feet(单调栈)
- CodeForces 548D Mike and Feet (单调栈)
- CodeForces 547B - Mike and Feet(单调栈)
- Codeforces548D:Mike and Feet(单调栈)
- CodeForces548D-Mike and Feet(单调栈)
- Codeforces 547 B - Mike and Feet (单调栈)
- codeforces #305 547B B. Mike and Feet(单调栈)
- Codeforces 547B - Mike and Feet (单调栈)
- codeforces 548 D. Mike and Feet (单调栈)
- Codeforces548D Mike and Feet 数据结构+单调栈+优先队列
- Codeforces Round #305 (Div. 1) B. Mike and Feet(单调栈)
- EF Code First属性规则及配置
- 浪漫情书+部份分析
- 级联
- 网神点燃互联网+国家政务安全日
- Tiny服务编辑器
- CF305 Mike and Feet 单调栈(求每个长度对应的最小数字)
- Qt中设置widget背景颜色背景图片的注意事项
- 基于jquery的$.ajax async使用
- Tiny模板运行器
- 技术普及帖:你刚才在淘宝上买了一件东西
- 房地产投资信托基金:让梦想照亮现实[万奥]
- 从单链表中删除最大的元素,单链表元素排序
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.badlogic.androidgames.
- 用Editplus配置JAVA编辑环境