【每日一题】YACS 473:栈的判断

news/2024/7/24 12:58:21 标签: 5G, 算法, c++, 数据结构, 图论, 学习

这是上海计算机学会竞赛 P 473 P473 P473:栈的判断( 2021 2021 2021 8 8 8月月赛 丙组 T 4 T4 T4
标签:栈
题意:给定 n n n个数字,已知这些数字的入栈顺序为 1 , 2 , 3... , n 1,2,3...,n 1,2,3...,n,给定一个出栈顺序 a 1 , a 2 , a 3 . . . , a n a_1,a_2,a_3...,a_n a1,a2,a3...,an,判断出栈顺序是否合法。合法输出 V a l i d Valid Valid,不合法输出 I n v a l i d Invalid Invalid。( 1 < = n < = 1 0 5 1<=n<=10^5 1<=n<=105
题解:经典的出栈合法性判断。按入栈顺序正常入栈,当栈顶的元素和目前出栈顺序序列 a a a的第 k k k个相同的时候,不断地去出栈,同时把这个出栈下标 k k k往后移动,直到栈为空为止。(可以自己手动模拟一遍样例就比较好理解了)
代码

#include <bits/stdc++.h>
using namespace std;

int a[100005], n, k = 1;
stack<int> s;

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];

    for (int i = 1; i <= n; i++) {
        s.push(i); // 入栈
        while (s.top() == a[k]) {
            s.pop(); k++; // 出栈
            if (s.empty()) break;
        }
    }
    if (s.empty()) cout << "Valid";
    else cout << "Invalid";
    return 0;
}

http://www.niftyadmin.cn/n/5354018.html

相关文章

CTF CRYPTO 密码学-7

题目名称&#xff1a;敲击 题目描述&#xff1a; 让我们回到最开始的地方 0110011001101100011000010110011101111011011000110110010100110011011001010011010100110000001100100110001100101101001101000011100001100011001110010010110100110100011001000011010100110000…

【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 归并排序 代码实现&#xf…

【MyBatis】快速入门MyBatis(保姆式教学),你值得一看

文章目录 &#x1f4c4;前言一. Mybatis简介✈️1. 什么是Mybatis&#x1f680;2. 为什么使用Mybatis 二. Mybatis快速入门&#x1f346;1. mybatis使用前准备1.1 创建springboot项目并引入相关依赖1.2 在 application.ym中进行数据源的配置1.3 创建数据表&#xff0c;准备表数…

C语言数据在内存中的存储和结构体联合体枚举

1.无符号整形提升时,直接补零 2.char类型的取值范围是-128~127 无符号的话是0~255 3.要直接打印时也是先提升后打印 4.int就是十进制 5.1E10就是1乘以10的10次方 6.浮点数存储会存在误差,所以要相减然后用这个值比较某个范围 7.匿名结构体只能用一次,就是在全局变量那里…

探索数字经济:从基础到前沿的奇妙旅程

新一轮技术革命方兴未艾&#xff0c;特别是以人工智能、大数据、物联网等为代表的数字技术革命&#xff0c;催生了一系列新技术、新产业、新模式&#xff0c;深刻改变着世界经济面貌。数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。预估到20…

java自动化之创建自动化框架项目(第一天)

1.前言 idea版本为2023.2 java版本为17.0.9 技术栈&#xff1a; javase&#xff1a;封装、泛型、反射、jdbc等 testng&#xff1a;开源测试框架&#xff0c;是从Junit继承而来 httpclient&#xff1a;java提供的与服务端http接口进行交互的库 fastjson&#xff1a;处理js…

深度强化学习(王树森)笔记09

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

git由SSH更改为HTTPS

不知道什么原因&#xff0c;这个月的github无法使用ssh提交代码&#xff0c;不论是公司还是家里的网络都不行&#xff0c;包括clone、pull和push。最后改为https方式&#xff0c;可以提交了。 1.删除现有SSH克隆的远程追踪&#xff1a; git remote remove origin2.添加新的HT…