用栈模拟..
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
int main()
{
int n,a,b,ans=0;
scanf("%d",&n);
stack<int> q;
for(int i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
if(b) q.push(a);
else
{
if(q.empty()) ans++;
else
{
while(!q.empty())
{
int cur=q.top();
if(cur<a) q.pop();
else break;
}
if(q.empty()) ans++;
}
}
}
printf("%d\n",(int)q.size()+ans);
}
栈模拟实现解析
本文介绍了一个使用栈数据结构进行模拟的算法实现。该算法通过一系列输入操作(压栈和弹栈),来模拟栈的行为,并计算出无法完成的操作数量。文章包含完整的C++代码示例,演示了如何使用标准模板库(stack)中的栈。
6446

被折叠的 条评论
为什么被折叠?



