堆栈
我们所说的堆栈其实就是栈这种数据结构。只能在栈顶来进行添加和删除。
第一步:初始化
|_|
|_|
|_|
|_|
|_|
|_| top=0;
第二步:加入一个元素8
|_|
|_|
|_|
|_|
|8| top=1;
|_|
第三步:删除一个元素
|_|
|_|
|_|
|_|
|8|
|_| top=0;
典型的堆栈的题目是:poj 3250 http://poj.org/problem?id=3250
代码如下:
(不用stl的代码,141ms)

include "iostream" #include "string" #include "algorithm" using namespace std; #define maxn 80005 int cow[maxn]; int main() { int n, nn; long long ans=0; scanf("%d", &n); int h=0, t=0; while(n--) { scanf("%d", &nn); while(h>t && cow[h]<=nn) h--; ans += h; cow[++h]=nn; } printf("%lld\n", ans); }
(用了stl的代码,1016ms)

#include "iostream" #include "string" #include "algorithm" #include "stack" using namespace std; int main() { int n, nn; long long ans=0; cin>>n; stack<int> s; while(n--) { cin>>nn; while(!s.empty() && s.top()<=nn) s.pop(); ans += s.size(); s.push(nn); } cout<<ans<<endl; }
posted on 2012-08-14 16:57 More study needed. 阅读(282) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架