题目大意:

给你一个1->n的排列和一个栈,入栈顺序给定
你要在不打乱入栈顺序的情况下,对数组进行从大到小排序
当无法完全排序时,请输出字典序最大的出栈序列
因为要按照字典序输出,直接做一遍循环,从1开始直接把从当前位置到n的之间的最大的数字之间的数字全部压栈,然后弹掉栈顶最大的数组,如此往复,直至最后再将栈里的元素全部弹出就好了。
代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <stack>
#include <string.h>
using namespace std;
const int N=1000005;
stack<int >sta;
int num[N];
int maxx[N];
int pos[N];
int ans[N];
int main()
{int n;while(cin>>n){memset(maxx,0,sizeof(maxx));memset(pos,0,sizeof(pos));for(int i=1;i<=n;i++){scanf("%d",&num[i]);}maxx[n]=num[n];pos[n]=n;for(int i=n-1;i>=1;i--){if(num[i]>maxx[i+1]){pos[i]=i;maxx[i]=num[i];}else{pos[i]=pos[i+1];maxx[i]=maxx[i+1];}}/*for(int i=1;i<=n;i++)printf("maxx=%d pos=%d\n",maxx[i],pos[i]);*/while(!sta.empty())sta.pop();int k=1;int tot=0;while(k<=n){for(int i=k;i<=pos[k];i++)sta.push(num[i]);ans[++tot]=sta.top();sta.pop();k=pos[k]+1;}while(!sta.empty()){ans[++tot]=sta.top();sta.pop();}for(int i=1;i<n;i++)printf("%d ",ans[i]);printf("%d\n",ans[n]);}return 0;
}

牛客训练赛10 B栈和排序(栈)相关推荐

  1. 寒假的牛客训练赛1补题

    寒假我太摸鱼了 牛牛最近做了这么一道题: "对于一给定的 n(1≤n≤109)n(1\leq n\leq 10^{9})n(1≤n≤109),计算ϕ(n)\phi(n)ϕ(n), 之中 ϕ( ...

  2. 牛客巅峰赛12th C.一起来看流星雨(旋转卡壳三分)

    牛客巅峰赛12th C.一起来看流星雨(旋转卡壳&三分) 题意:给定二维平面nnn个点,每个点有个速度向量,求最开始距离最远的两个点在运动过程中的最小距离. 思路:求距离最远的两个点就凸包gr ...

  3. 牛客网赛码网 输入输出格式

    目录 牛客网&赛码网输入输出 牛客网 单行输入 多行输入,每一行是一个测试样例 多个测试用例,每个测试用例有多行 赛码网 单个输入,单个输出 单行多个输入,单行多个输出,空格分割 多个测试案例 ...

  4. 牛客网赛码网 输入输出格式 pythonC++

    牛客网&赛码网 输入输出格式 python&C++ Note: 你的程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,举个例子,你可以使用c语言的scan ...

  5. 牛客题霸 单链表的选择排序 C++题解/答案

    牛客题霸 单链表的选择排序 C++题解/答案 题目描述 给定一个无序单链表,实现单链表的选择排序(按升序排序). 题解: 不可能手写排序,这辈子不可能手写排序.. 基础的链表操作,将链表内的数据存到v ...

  6. oj记录 牛客 高校赛 C派蒙的奇妙冒险------石之海

    题目描述 链接:https://ac.nowcoder.com/acm/contest/33869/C 来源:牛客网 题意 思路 其实只需要判断有没有素数即可,因为最少的染色策略是让所有的素数的颜色相 ...

  7. 牛客网赛码网输入输出总结(python版)

    1. 单行输入: n, m = map(int, sys.stdin.readline().strip().split()) 对该行中所有元素取整型后赋给等式左边若干参数 2. 多行输入: 先获取第一 ...

  8. 牛客网 赛码网 js输入输出

    牛客网 详细地址 let readline = require('readline') const r1 = readline.createInterface({input: process.stdi ...

  9. 牛客小白月赛10 A,B,C,D

    传送门 链接:https://ac.nowcoder.com/acm/contest/280/A 来源:牛客网 题目描述 Actci偶然发现了一个矿洞,这个矿洞的结构类似与一棵二叉树,Actci发现的 ...

最新文章

  1. 2021-2027年中国医疗护理行业深度研究及发展趋势报告
  2. Confluence 6 数据库表-空间(Spaces)
  3. edgeR基因表达差异分析
  4. nginx 缓存设置
  5. Linux基础监控小工具nmon
  6. java拥有键值对的数据结构_Java数据结构之004--HashMap
  7. 使用python下载文件_利用python web框架做文件流下载
  8. Android Studio打开项目提示找不到sdk路径的问题。
  9. 2020年mathorcup数模A题总结回顾
  10. 人脸关键点检测 face keypoint detect
  11. 基于HI600R的差分GPS设搭建过程介绍
  12. 决策树之CART算法
  13. Java8 根据身份证号获取年龄
  14. 【JAVA】360-2021校招笔试-技术综合A卷-0911
  15. 学校计算机信息固定资产编号,学校固定资产的分类和编号(仅供参考).doc
  16. 谁来救救过拟合?透过现象看本质,如何利用正则化方法解决过拟合问题
  17. RK平台ME3630模块GPS移植调试
  18. Android实现高德地图POI搜索
  19. python网络渗透入门_利用Python进行Web渗透测试(四):HTTP协议基础
  20. 看完阿里p8整理的Spring Security应用到源码手册,豁然开朗

热门文章

  1. autohotkey 常见代码段
  2. js拼装html单引号双引号,js、html中的单引号、双引号及其转义使用
  3. 数据规模爆炸性增长,企业如何进行精准决策?云原生数据仓库数据化运营实战分享
  4. 百度搜索中台海量数据管理的云原生和智能化实践
  5. SSVEP介绍|第一章 SSVEP的基础应用系统|第二节 SSVEP的信号处理过程(1)
  6. EDA(Quartus II)——十进制加法计数器设计
  7. [other]恢复word文档
  8. ssl设置,阿里云申请
  9. Neighbor2Neighbor:从单个噪声图像进行自监督去噪
  10. 摄影 后期图片PS,PS过分 是否必要?