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的更多相关文章
随机推荐
- .net Core 下数据库访问
SqlSugar :是一款高性能(达到ADO.NET最高性能水平)SqlSugar :是除EF外拉姆达解析最完善的ORM,多表 .UnionALL. 交叉子查询.真实的批量操作和分页SqlSugar ...
- 第三节:框架前期准备篇之利用Newtonsoft.Json改造MVC默认的JsonResult
一. 背景 在MVC框架中,我们可能经常会用到 return Json(),而Json方法内部又是一个JsonResult类,那么JsonResult内部又是什么原理呢?在MVC框架中,各种xxxRe ...
- 使用 Google
非原版 Glgoo:http://www.glgoo.com/谷粉搜搜:http://www.gfsoso.net/谷粉搜搜:http://www.gfsswy.com/谷粉搜搜:http://guf ...
- 简单管理员权限与几个常用的PHP 常用函数,in_array(),explode(),implode(),join(),str_replace()
先把今天要用的几个函数罗列出来: //explode()转换成数组,implode()转化成字符串 explode("分隔符",需要被分割的字符串或变量) $priv=" ...
- 一、Kubernetes系列之介绍篇
•Kubernetes介绍 1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境 2.什 ...
- L1-Day3
L1-Day31.太阳从西边落下. [我的翻译]The sun falls in the west. [标准答案]The sun sets in the west. [对比分析]落下fall与set的 ...
- png
- 不用写代码的框架 - RobotFramework+Eclispe环境安装篇
环境安装是学习任何一个新东西的第一步,这一步没走舒坦,那后面就没有心情走下去了. 引用名句:工欲善其事必先利其器!! Robotframework:一款 自动化测试框架. Eclipse:一款编辑工具 ...
- 4. SpringBoot —— 单元测试
首先在pom文件中引入spring-boot-starter-test <dependency> <groupId>org.springframework.boot</g ...
- asyncio协议
服务端 import asyncio import logging import sys from typing import Optional SERVER_ADDRESS = ('localhos ...