#include #include using namespace std;

int main() { int T; cin >> T; while (T--) { int n; cin >> n; stack s; int j = 1; for (int i = 1; i <= n; i++) { int x; cin >> x; s.push(x); // 将火车驶入休息区的顺序入栈 while (!s.empty() && s.top() == j) { // 如果栈顶元素等于驶出休息区的顺序,就弹出栈顶元素 s.pop(); j++; } } if (s.empty()) cout << "Yes" << endl; // 如果栈为空,说明小美记录的驶入和驶出顺序可以被满足 else cout << "No" << endl; } return 0; }

火车站类似一个栈结构第一行输入整数T表示数据组数。对每组测试而言第一行一个整数n表示观察到的火车数第二行n个整数x1x2xn表示火车驶入休息区S的顺序第三行n个整数y1y2yn表示火车驶出休息区S的顺序。1=T=101=n=500001=xiyi=n 且xnyn均为123n的一个排列对于每组数据输出一行如果小美记录的驶入和驶出顺序无法被满足则输出No否则输出Yes用C++实现并注释

原文地址: https://www.cveoy.top/t/topic/B7H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录