首页 > 其他分享 >2022.10.30每日一题

2022.10.30每日一题

时间:2022-10-30 16:22:51浏览次数:73  
标签:出栈 int 每日 30 样例 pop 序列 push 2022.10

Daimayuan Online Judge-出栈序列判断

题目描述

现在有一个栈,有 \(n\) 个元素,分别为 \(1,2,…,n\)。我们可以通过 pushpop 操作,将这 \(n\) 个元素依次放入栈中,然后从栈中弹出,依次把出栈的元素写下来得到的序列就是出栈序列。
比如 \(n=3\),如果执行 push 1push 2poppush 3poppop,那么我们 pop 操作得到的元素依次是 \(2,3,1\)。也就是说出栈序列就是 \(2,3,1\)。
现在给定一个合法的出栈序列,请输出一个合法的由 pushpop 操作构成的操作序列。这里要求 push 操作一定是按 \(1,2,…,n\) 的顺序。

输入格式

第一行一个整数 \(n\)。接下来一行 \(n\) 个整数,表示出栈序列。

输出格式

输出 \(2n\) 行,每行一个 pushpop 操作,可以证明一个出栈序列对应的操作序列是唯一的。

样例输入1
3
2 3 1
样例输出1
push 1
push 2
pop
push 3
pop
pop
样例输入2
5
1 3 5 4 2
样例输出2
push 1
pop
push 2
push 3
pop
push 4
push 5
pop
pop
pop
数据范围

对于 \(100\%\) 的数据,保证 \(1≤n≤100000\),输入一定是个合法的出栈序列。

解题思路

比较基础的模拟题。因为保证是以 \(1,2,3,...,n\) 的顺序进栈,那么我们只需要出栈情况,也就是栈顶元素为当前 \(a[i]\) 对应的元素,那么我们就可以出栈,\(i\) 后移一位。而进栈操作,只要不满足出栈规则,就一直进栈即可。本题记得特判一下栈为空的情况

C++代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 100010;

int n;
int tt = 0;
int stk[N], a[N];

int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++)
        scanf("%d", &a[i]);
    int num = 1;
    for(int i = 1; i <= n; i ++)
    {
        while(!tt || stk[tt] != a[i])
        {
            printf("push %d\n", num);
            stk[++ tt] = num;
            num ++;
        }
        if(stk[tt] == a[i])
        {
            printf("pop\n");
            tt --;
        }
    }
    return 0;
}

标签:出栈,int,每日,30,样例,pop,序列,push,2022.10
From: https://www.cnblogs.com/Cocoicobird/p/16841541.html

相关文章

  • 10/30 基于SeedUbuntu16.04的缓冲区溢出实验
    sudosysctl-wkernel.randomize_va_space=0gcc-fno-stack-protectorexample.cgcc-zexecstack-otesttest.c/*call_shellcode.c//设置四个寄存器eax,ebx,ecx,ed......
  • 2022-2023-1 20221302《计算机基础与程序设计》第九周学习总结
    作业信息这个作业属于那个班级 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09作业目标 ......
  • 2022年10月30日
      10月的最好几天,很想去三亚旅游,很想去看海,希望不久就可以实现。  10月的最后几天,希望开始新的人生,云游四海,行万里路,新的工作,新的人生,新的开始。  10月的最......
  • 30岁单身女青年进退两难的爱情
    什么样的对象合适结婚呢?谈到结婚条件。很多人会列出外在条件:身高、长相、家世背景、学历、经济条件等等。不知道你有没有发现?有时候,即使别人的条件再符合你的要求。你和他......
  • 【XSY3330】地中海气候(思维)
    题目让我们动态维护一个堆,有两种操作:加入一个数、询问并取出最大值。比较巧妙的地方是这两种操作是轮流进行的。我们可以用桶来维护这个堆,顺便记录一下当前桶内的最大值。......
  • 【XSY3032】画画(Burnside引理,计数)
    为了方便,我们肯定是先考虑有标号图的个数,再用Burnside引理去重,但是用Burnside引理时得先考虑清楚映射集合\(X\)是哪个集合\(A\)到哪个集合\(B\)的哪些映射,以及作......
  • 2022.10.29每日一题
    DaimayuanOnlineJudge-01序列题目描述我们称一个字符串为好字符串,指这个字符串中只包含\(0\)和\(1\)。现在有一个好字符串,求这个字符串中\(1\)恰好出现\(k\)次......
  • 2022-2023-1 20221301 《计算机基础与程序设计》第九周学习总结
    2022-2023-120221301《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • javascript:监控video全屏时取消静音(chrome 107.0.5304.87)
    一,js代码:<html><head><metacharset="utf-8"/><title>测试</title></head><body><divstyle="width:50%;height:100%;float:left;margin-left:-0.3px;pos......
  • 软考中级(软件设计师)——面向对象技术(上午12分)(下午30分)(超重点)
    软考中级(软件设计师)——面向对象技术(上午12分)(重点)目录​​软考中级(软件设计师)——面向对象技术(上午12分)(重点)​​​​面向对象的基本概念(★★★★★)​​​​面......