当前位置: 首页 > wzjs >正文

手机网站经典案例好玩的网页游戏排名

手机网站经典案例,好玩的网页游戏排名,app运营专员,网站建设费记入科目铁轨 Rails 题目链接 题目描述 PDF 输入格式 输出格式 题目翻译: 某城市有一个火车站,铁轨铺设如图。有n节车厢从A方向驶入车站,按进站的顺序编号为1~n。你的任务是判断是否能让他们按照某种特定的顺序进入B方向的铁轨并驶出车…

铁轨 Rails

题目链接


题目描述

PDF

输入格式

输出格式




题目翻译:

某城市有一个火车站,铁轨铺设如图。有n节车厢从A方向驶入车站,按进站的顺序编号为1~n。你的任务是判断是否能让他们按照某种特定的顺序进入B方向的铁轨并驶出车站。例如,出栈顺序(5 4 1 2 3)是不可能的,但(5 4 3 2 1)是可能的。 为了重组车厢,你可以借助中转站C。这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出C。对于每节车厢,一旦从A移入C,就不能返回A了;一旦从C移入B,就不能返回C了。也就是说,在任意时刻,只有两种选择:A到C和C到B。


输入格式

输入包含若干组测试数据,每组形式如下:

n
a₁ a₂ a₃ ... aₙ
a₁' a₂' a₃' ... aₙ'
...
0
  • 第一行是整数 n n n,表示火车车厢数;
  • 接下来若干行,每行是一个长度为 n n n 的排列,表示一个目标出站序列;
  • 每组以 0 行结束;
  • 整个输入以单独一个 0 结束。

输出格式

  • 对每个出站序列,如果可以实现,输出 Yes,否则输出 No
  • 每组输出之间用一个空行隔开。

输入输出样例 #1

输入 #1

5
1 2 3 4 5
5 4 1 2 3
0
6
6 5 4 3 2 1
0
0

输出 #1

Yes
NoYes

题解(模拟出栈入栈过程)

一、问题建模

初始状态

我们可以将问题抽象为一个入栈 + 出栈的过程:

  • 有一个初始顺序为 [ 1 , 2 , … , n ] [1, 2, \dots, n] [1,2,,n] 的入栈序列;
  • 每次可以将当前入栈元素压入栈中;
  • 栈顶元素可以随时出栈,进入出站序列。

我们的目标是判断是否能通过这一过程,恰好以题目给出的顺序完成出站


操作允许的内容

  1. 按顺序把 1 1 1 n n n 的数一个一个“尝试”压入栈中;
  2. 如果栈顶的元素等于目标出栈序列的当前元素,就弹出;
  3. 否则继续压栈;
  4. 如果最终能按顺序完整地弹出所有目标元素,则输出 Yes,否则 No

二、模拟分析如下:

示例目标序列:5 4 1 2 3

原始入栈顺序:1 2 3 4 5

过程模拟:

操作栈中内容当前出栈指针
push(1)15
push(2)1 25
push(3)1 2 35
push(4)1 2 3 45
push(5)1 2 3 4 55
pop()1 2 3 44
pop()1 2 31
❌ 栈顶为 3,目标是 1,失败

因此输出 No


三、完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main()
{while (true) // 外层循环:处理多个测试组,每组以一个 n 开头{int n;cin >> n;if (n == 0) break; // n=0 表示程序结束while (true) // 内层循环:处理每组 n 的多个目标排列序列{vector<int> nums(n + 1); // 存放目标排列,使用 1 开始的下标方便阅读cin >> nums[1];          // 读取排列第一个数字if (nums[1] == 0){// 若首元素为 0,说明当前 n 的测试组结束,输出一个空行cout << endl;break;}// 读取剩余 n-1 个元素for (int i = 2; i <= n; i++){cin >> nums[i];}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//以下为核心代码:stack<int> stk; // 栈模拟中转站int j = 1;       // j 表示从原始序列 1~n 中当前准备入栈的数字bool ok = true;  // 标记是否可以成功地构造目标排列// 遍历目标排列 nums[1...n]for (int i = 1; i <= n; i++){// 尝试将原始序列的元素压入栈,直到栈顶元素等于当前目标元素 nums[i]while (j <= n && (stk.empty() || stk.top() != nums[i])){stk.push(j); // 将原始序列的下一个数字压入栈j++;         // 指向下一个准备压栈的数字// j <= n 是必要的边界判断,避免访问原始序列中不存在的数字// 一旦 j > n,就表示所有元素都已经入栈完毕,不能再继续压栈}// 如果当前栈顶元素就是我们想要的目标元素if (stk.top() == nums[i]){stk.pop(); // 出栈表示火车离站,构造成功一位}else{// 若不能通过出栈构造当前目标元素,说明顺序不可能实现ok = false;break;}}// 输出当前目标排列是否可达cout << (ok ? "Yes" : "No") << endl;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}return 0;
}

四、复杂度分析

  • 每次最多会执行 2 n 2n 2n 次操作(入栈 + 出栈);
  • 一组最多有 n n n 个排列,总体复杂度约为 O ( n 2 ) O(n^2) O(n2)
  • n ≤ 1000 n \le 1000 n1000 范围内是完全可以接受的。

五、总结

  • 本题本质是一个栈排序可达性判断问题
  • 关键点在于模拟真实的入栈 + 出栈过程;


文章转载自:

http://YCbZfcNt.cpgdy.cn
http://TpnqNZk8.cpgdy.cn
http://2ibR8xO6.cpgdy.cn
http://I4Ih3CZ9.cpgdy.cn
http://XQdsjjyf.cpgdy.cn
http://q2Cohw20.cpgdy.cn
http://TwDpmpni.cpgdy.cn
http://byveBfel.cpgdy.cn
http://G6bxFWHA.cpgdy.cn
http://DfEaBFUx.cpgdy.cn
http://XcGyOlNE.cpgdy.cn
http://hGDPOzmB.cpgdy.cn
http://qvgNiROc.cpgdy.cn
http://ghb9chii.cpgdy.cn
http://0e1LDsKQ.cpgdy.cn
http://wzGjq5RI.cpgdy.cn
http://CLaW5pny.cpgdy.cn
http://4XyPdZ15.cpgdy.cn
http://OQM35x3G.cpgdy.cn
http://e4jryHOn.cpgdy.cn
http://91mSHkhH.cpgdy.cn
http://IDkZHeaG.cpgdy.cn
http://xgg7zRw4.cpgdy.cn
http://XYFp8Fje.cpgdy.cn
http://TbXqyJ61.cpgdy.cn
http://JkDOktos.cpgdy.cn
http://8XxmptJN.cpgdy.cn
http://dQYaDOOk.cpgdy.cn
http://wuq4gZTZ.cpgdy.cn
http://0ZzuzdNt.cpgdy.cn
http://www.dtcms.com/wzjs/751054.html

相关文章:

  • 外贸网站域名赏析青峰网站建设
  • 查网站关键词工具广东集团网站建设
  • 怎么分析网站用什么技术做的深圳最新动态实时更新
  • 网站建设用阿里云的虚拟主机wordpress 360cdn
  • 建设网站怎么设置网站页面大小用python做网站前端
  • wordpress主题 推荐十堰优化seo
  • 企业网站建设网站有哪些wordpress制作网页教程
  • 做网站备案必须是个人还是公司dw软件主要做什么
  • 四川禾力建设工程质量检测有限公司网站wordpress预约订单插件
  • 建材 网站 模板住房和建设建设局网站
  • 广州网络网站页面优化方法有哪些
  • 网站301重定向 权重转移合肥网站设计建
  • 如何更新网站口碑好的五屏网站建设
  • 响应试网站和移动端安徽百度推广怎么做
  • 长宁区网站建设网页制园林在线设计平台
  • 网站设置访问频率怎么办连云港网站 建设
  • 互联网营销师培训班宁波seo快速优化
  • 个人做哪方面网站themes for wordpress
  • 瑞安营销网站建设上海做网站公司做网站的公司
  • 做文献的ppt模板下载网站seo计费系统开发
  • 大学生心理咨询网站建设论文如何新建网页
  • 医疗器械网站怎么做海淀中小企业网站开发
  • 公司网站怎样添加和修改内容网站备案号是什么意思
  • 南通科技网站建设wordpress ldap登陆
  • 专业网站制作团队aspx网站开发 案例
  • 国外可以做非法网站吗做公司网站有什么需要注意的
  • 网站返回首页怎么做的好看地方门户网站系统建设方案
  • 做网站保证效果中国建设网站官网
  • 上海有哪些优化网站推广公司网站开发定制方案
  • 找人做网站 多少钱百度指数需求图谱