车厢调度
2015-12-04 19:22
405 查看
车厢调度(train.cpp)
【问题描述】
有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C。
负责车厢调度的工作人员需要知道能否使它以a1,a2,…,an的顺序从B方向驶出,请来判断能否得到指定的车厢顺序。
【输入】train.in
输入文件的第一行为一个整数n,其中n<=1000,表示有n节车厢,第二行为n个数字,表示指定的车厢顺序。
【输出】train.out
如果可以得到指定的车厢顺序,则输出一个字符串”YES”,否则输出”NO”(注意要大写,不包含引号)。
【输入样例】
5
5 4 3 2 1
【输出样例】
YES
#include
#include
using namespace std;
int n,a[1010],pd,b[1010],c[1010];
int main()
{
freopen("train.in","r",stdin);
freopen("train.out","w",stdout);
inti,j,point,k,l;
cin>>n;
point=0;
l=0;
k=0;
for(i=1;i<=n;i++)
{
scanf("%d",&k);
if(k>point)//当前元素大于栈中最大的元素,则比此元素小的元素都入栈
{
for (j=point+1;j<=k;j++)
a[++l]=j;
point=k;
}
if(k<=point)//当前元素小于等于栈中最大元素,判断栈顶元素是否等于该元素
if (a[l]==k)
l--;
else
{
printf("NO");
return 0;
}
}
printf("YES");
return0;
}
用栈来模拟
【问题描述】
有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C。
负责车厢调度的工作人员需要知道能否使它以a1,a2,…,an的顺序从B方向驶出,请来判断能否得到指定的车厢顺序。
【输入】train.in
输入文件的第一行为一个整数n,其中n<=1000,表示有n节车厢,第二行为n个数字,表示指定的车厢顺序。
【输出】train.out
如果可以得到指定的车厢顺序,则输出一个字符串”YES”,否则输出”NO”(注意要大写,不包含引号)。
【输入样例】
5
5 4 3 2 1
【输出样例】
YES
#include
#include
using namespace std;
int n,a[1010],pd,b[1010],c[1010];
int main()
{
freopen("train.in","r",stdin);
freopen("train.out","w",stdout);
inti,j,point,k,l;
cin>>n;
point=0;
l=0;
k=0;
for(i=1;i<=n;i++)
{
scanf("%d",&k);
if(k>point)//当前元素大于栈中最大的元素,则比此元素小的元素都入栈
{
for (j=point+1;j<=k;j++)
a[++l]=j;
point=k;
}
if(k<=point)//当前元素小于等于栈中最大元素,判断栈顶元素是否等于该元素
if (a[l]==k)
l--;
else
{
printf("NO");
return 0;
}
}
printf("YES");
return0;
}
用栈来模拟
相关文章推荐
- 数学图形(1.50)三曲线
- Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist
- 中缀表达式求值
- vim中文乱码以及gvim菜单乱码解决方法
- 深入分析JavaWeb Item6 -- servletConfig 与servletContext详解
- RC4加密算法 解析及代码
- 快速幂取余(大数运算/算法优化)
- 双色Hanoi塔问题
- mysql 事务
- Java 50线程面试题
- [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-t
- Jsp中<%page errorPage%>的使用
- 重定向和转发的区别
- springmvc 各种注解及对象理解
- 基础总结篇之二:Activity的四种launchMode
- 基础总结篇之一:Activity生命周期
- 对 Xcode 菜单选项的详细探索(干货)
- NFS的简单使用
- 2的幂次方
- 微博开启~~ 周周有惊喜!