出栈序列合法性的判断(25分)(基于数组模拟)
发布时间
阅读量:
阅读量
假设存在一个堆栈,其最大存储能力为 M,现需将 N 个数字依照 1, 2, 3, …, N 的顺序依次入栈,同时允许以任意顺序进行出栈操作。在这样的条件下,哪些数字序列是无法生成的?例如,当 M=5、N=7 时,可以生成 {1, 2, 3, 4, 5, 6, 7} 这一序列,但无法生成 {3, 2, 1, 7, 5, 6, 4}。
输入格式:
第一行输入包含 3 个不超过 1000 的正整数,分别表示堆栈的最大容量 M、入栈元素的总数 N 以及需要验证的出栈序列数量 K。随后的 K 行中,每一行均提供一组由 N 个数字构成的出栈序列,各数字之间通过空格进行分隔。
输出格式:
针对每一条出栈序列,若其属于可实现的合法序列范畴,则在对应行输出YES,反之则输出NO。
输入样例解析
5 7 5
1 2 3 4 5 6 7
3 2 1 7 5 6 4
7 6 5 4 3 2 1
5 6 4 3 7 2 1
1 7 6 5 4 3 2
输出样例:
确认
否定
否定
确认
否定
AC代码:
#include<bits/stdc++.h>
using namespace std;
全部评论 (0)
还没有任何评论哟~
