pascal难题 5
题目描述在某个火车站中,有一个这样的轨道:在A到C的轨道的两端,各有一条轨道向下延伸,并合并成一个新的轨道。按照车站的管理制度,从A处可以行驶至B处,但从B处却不能行驶回...
题目描述
在某个火车站中,有一个这样的轨道:
在A到C的轨道的两端,各有一条轨道向下延伸,并合并成一个新的轨道。按照车站的管理制度,从A处可以行驶至B处,但从B处却不能行驶回A处。同样,可以从B到C,却不能从C回到B。现已知有一串车厢组成的火车要从A处行驶至C处,问是否可以借助中转站B,到达C处时变换成另一个序列(各个车厢都是分离的,可以单独调度)?
输入
输入包含多个测试样例,保证最多有20个样例。
对于每个样例,分别包含了3行整数。
第一行:一个整数N,代表了火车中有N个车厢。N最大不超过10000。
第二行:N个整数,代表了火车的初始序列。(每个整数都小于等于N,保证每个数字不相同)
第三行:N个整数,代表了火车到达C处时要排列成的序列序列。(每个整数都小于等于N,保证每个数字不相同)
输出
对于每个测试样例,都只有一行输出。
若可以按照给定顺序到达C处,输出“Yes”,否则输出“No”。
样例输入
51 2 3 4 55 4 3 2 151 2 3 4 53 4 2 1 551 2 3 4 51 5 2 3 4
样例输出
YesYesNo
提示
【样例说明】
第一个样例,可以直接将整个火车移到B处,在从上至下都移到C处。
第二个样例,现将1、2移到B处,再将3、4移到C处,即可把2、1从B处移至C处,最后可把5移至C处。
第三个样例无法实现,输出“No”。 展开
在某个火车站中,有一个这样的轨道:
在A到C的轨道的两端,各有一条轨道向下延伸,并合并成一个新的轨道。按照车站的管理制度,从A处可以行驶至B处,但从B处却不能行驶回A处。同样,可以从B到C,却不能从C回到B。现已知有一串车厢组成的火车要从A处行驶至C处,问是否可以借助中转站B,到达C处时变换成另一个序列(各个车厢都是分离的,可以单独调度)?
输入
输入包含多个测试样例,保证最多有20个样例。
对于每个样例,分别包含了3行整数。
第一行:一个整数N,代表了火车中有N个车厢。N最大不超过10000。
第二行:N个整数,代表了火车的初始序列。(每个整数都小于等于N,保证每个数字不相同)
第三行:N个整数,代表了火车到达C处时要排列成的序列序列。(每个整数都小于等于N,保证每个数字不相同)
输出
对于每个测试样例,都只有一行输出。
若可以按照给定顺序到达C处,输出“Yes”,否则输出“No”。
样例输入
51 2 3 4 55 4 3 2 151 2 3 4 53 4 2 1 551 2 3 4 51 5 2 3 4
样例输出
YesYesNo
提示
【样例说明】
第一个样例,可以直接将整个火车移到B处,在从上至下都移到C处。
第二个样例,现将1、2移到B处,再将3、4移到C处,即可把2、1从B处移至C处,最后可把5移至C处。
第三个样例无法实现,输出“No”。 展开
1个回答
2015-07-14
展开全部
实际上是压栈和弹栈的操作。只要符合压栈弹栈的序列就是可行的,否则不可行。
更多追问追答
追问
我也知道啊,可是不会写出来,我是萌新
追答
设计一个栈,对目标序列从头到尾通过判断比较模拟进栈、出栈的整个过程。遇到某个出栈和序列值不一致时,即为不可行的序列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询