3.2station
题意火车进入,然后要求以最大字典序输出
解题思路:先用一个数组储存当前位置之后最大的数字是什么,然后把已经进站的最后一节火车和还没进站的车的最大值,哪个更大,如果已经进站的更大,那么就先出站,否则就先一直把那些火车进站直到那个最大的火车,然后输出就好了。
#include<iostream>
#include<cstdio>
#include<stack>
#include<cstring>
using namespace std;
#define sf scanf
#define scf(x) scanf("%d",&x)
#define scff(a,b) scanf("%d%d",&a,&b)
#define pf printf
#define prf(x) printf("%d\n",x)
#define mm(a,b) memset((a),(b),sizeof(a))
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
const int N=1e5+7;
int a[N],c[N];
stack<int>v;
int main()
{
mm(a,0);
int n,x,maxn=0;scf(n);
rep(i,1,n+1)
{
scf(x);
c[i]=a[i]=x;
}
per(i,n-1,1)//记录最大的数是多少
a[i]=max(a[i+1],a[i]);
int pos=1; //pos是已经进入的车辆数
pf("%d",a[1]);
for(;pos<=n;pos++)
{
if(c[pos]==a[1])
{
pos++;
break;
}else
v.push(c[pos]);
}
while(1)
{
if(pos>n&&v.empty()) break;//都走完且栈为空退出
if(pos>n)//都走完就只输出
{
pf(" %d",v.top());
v.pop();
}
else if(v.empty())//栈为空就判断当前这个是不是最大的,是就输出,不是就存入
{
if(a[pos]==c[pos])
pf(" %d",a[pos]);
else
v.push(c[pos]);
pos++;
}else
{
if(v.top()>a[pos])//如果已经进的更大就输出这辆
{
pf(" %d",v.top());
v.pop();
}else//否则
{
if(a[pos]==c[pos])//如果当前这个就是最大的就输出
pf(" %d",a[pos]);
else //否则进站
v.push(c[pos]);
pos++;
}
}
}
pf("\n");
return 0;
}
3.2station的更多相关文章
随机推荐
- 第十四节:再探MVC中路由的奥秘
一. 基于RouteBase扩展 1. 原理 扩展RouteBase,同样使用的是MVC框架提供的MvcRouteHandler进行处理. 2. 步骤 1. 新建YpfRoute1类,继承RouteB ...
- [Android] Android RxJava2+Retrofit2+OkHttp3 的使用(一) --基础篇 Retrofit2 的使用
本文是 Android RxJava2+Retrofit2+OkHttp3 的使用(一) --基础篇 Retrofit2 的使用 本文的目标是用 Retrofit写一个网络请求: 本文以从获取天气预报 ...
- Beamer 中的页面链接
\documentclass[]{beamer} \usetheme{Madrid} \usenavigationsymbolstemplate{} \title{Main Title} \autho ...
- [数分提高]2014-2015-2第6教学周第1次课讲义 3.3 Taylor 公式
1. (Taylor 公式). 设 $f^{(n)}$ 在 $[a,b]$ 上连续, $f^{(n+1)}$ 在 $(a,b)$ 内存在, 试证: $ \forall\ x,x_0\in [a,b], ...
- gitlab升级和迁移
由于近期公司gitlab服务器老是卡顿和出现其他问题,然后也很久没有升级过了,现在版本还是8.10.5,而官网最新版本已经是11.2了.另一个原因是gitlab所在的这台服务器快到期了,想换一台配置更 ...
- 《我是一只IT小小鸟读后感》
在我步入大学前,并未了解何为IT,真是毫无知晓.由于种种原因最终还是选择了软件工程专业,是 对是错,是福是祸,不知该不该去考虑,但即已然 选择了这条路,便得付出一些努力,这个世界总 是有许多在默默努力 ...
- java反射常用类
测试实体类 public class TestClass { public String classInfo; public String getClassInfo() { return classI ...
- 不二之选_iTOP-4418开发板研发之旅_缩短开发时间
迅为iTOP-4418开发板拿到手?用能力印证梦想,培养你的研发路程,能力·思维 一.板载WIFI蓝牙.4G.GPS.千兆以太网接口.串口.重力加速度计等. 二.自选模块支持500W摄像头自动对焦摄像 ...
- 【Hibernate】could not instantiate class.. from tuple] with root cause
使用hibernate的过程中出现了这个问题,查询语句如下: String hql = "select new GoodsBean(id, name, price, proPic, sale ...
- 【原创】运维基础之Redis(1)简介、安装、使用
redis 5.0.3 官方:https://redis.io/ 一 简介 Redis is an open source (BSD licensed), in-memory data structu ...