题目大意:
题目告诉你利用单调栈几个点前面比它小并包含它自身的元素有多少个
让你构造一个包含1到n并每个数字只出现一次的序列

思路:
我们可以对于每个点都算出栈中元素的数量
对于没有给出的点的栈中元素的数量
我们直接让栈中的元素等于上个点的栈中的元素+1就好了
而对于给出点的栈的元素的时候我们首先要看他合不合法
如果栈中的元素数量是大于上一个点的栈中的元素数量+1的就说明填数填不进去了
这个时候就是不合法的
而得到每个点的栈中元素数量之后
我们可以从后往前遍历
看栈中元素的数量依次把1,2,3,4,5······按递增顺序放入栈里
因为单调栈元素中的数量代表的是递增数字的数量
那么当递增数字满了的时候即加入数字后等于栈中元素数量的时候
就直接把数字当做该点的值即可

AC代码:

#include <iostream>
#include <algorithm>
using namespace std;
int b[1000010];
int a[1000010];
int st[1000010];
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=k;i++){int pos;cin>>pos>>a[pos];}for(int i=1;i<=n;i++){if(!a[i])a[i]=a[i-1]+1;else if(a[i]>a[i-1]+1){cout<<"-1"<<endl;return 0;}}int cnt=0,top=0;for(int i=n;i>=1;i--){while(a[i]>top)st[++top]=++cnt;//++cnt能保证先把小的弹出来再把大的弹出来b[i]=st[top];top--;}for(int i=1;i<=n;i++)cout<<b[i]<<' ';return 0;
}

2021牛客暑期多校训练营2 K Stack相关推荐

  1. 2021牛客暑期多校训练营9

    2021牛客暑期多校训练营9 题号 题目 知识点 A A Math Challenge B Best Subgraph C Cells D Divide-and-conquer on Tree E E ...

  2. 2021牛客暑期多校训练营5

    2021牛客暑期多校训练营5 题号 题目 知识点 A Away from College B Boxes 概率 C Cheating and Stealing D Double Strings 线性d ...

  3. 2021牛客暑期多校训练营4

    2021牛客暑期多校训练营4 题号 题目 知识点 A Course B Sample Game C LCS D Rebuild Tree E Tree Xor 思维+线段树 F Just a joke ...

  4. 2021牛客暑期多校训练营3

    2021牛客暑期多校训练营3 题号 题目 知识点 A Guess and lies B Black and white C Minimum grid 二分图匹配 D Count E Math 数论+打 ...

  5. 2021牛客暑期多校训练营2

    2021牛客暑期多校训练营2 题号 题目 知识点 A Arithmetic Progression B Cannon C Draw Grids D Er Ba Game E Gas Station F ...

  6. 2021牛客暑期多校训练营1

    2021牛客暑期多校训练营1 题号 题目 知识点 难度 A Alice and Bob 博弈论 B Ball Dropping 计算几何 签到 C Cut the Tree D Determine t ...

  7. 2021牛客暑期多校训练营2,签到题CDFKI

    2021牛客暑期多校训练营2 题号 标题 已通过代码 通过率 团队的状态 A Arithmetic Progression 点击查看 6/72 未通过 B Cannon 点击查看 34/104 未通过 ...

  8. 2021牛客暑期多校训练营1, 签到题DFBG

    2021牛客暑期多校训练营1 题号 标题 已通过代码 通过率 团队的状态 A Alice and Bob 点击查看 1365/5586 通过(博弈论-打表) B Ball Dropping 点击查看 ...

  9. 【训练题66:状压暴力 | 子集dp】Greater Integer, Better LCM | 2021牛客暑期多校训练营5

    题意 Greater Integer, Better LCM | 2021牛客暑期多校训练营5 给你 a,b,ca,b,ca,b,c ,你需要找到一对 x,yx,yx,y ,满足: lcm(a+x,b ...

最新文章

  1. Microbiome:中科院遗传发育所揭示植物发育和氮肥共同作用下的小麦根系微生物组...
  2. 使用GitHub Pages搭建博客
  3. C语言函数指针的使用
  4. kalman滤波(二)---扩展kalman滤波[EKF]的推导
  5. PHP采集商家信息及采集方法概述(上)
  6. Ribbon_窗体_实现Ribbon风格的窗体
  7. php银行转账,php+mysqli事务控制实现银行转账实例_PHP教程
  8. 从零打造在线版H5页面生成器
  9. MTK 驱动(62)---eMMC RPMB分区介绍
  10. Fastjson - 详解SerializeFilter,格式化对象字段
  11. 掌握业务流程图符号,提高业绩不再没有头绪
  12. JDBC连接数据库问题之jdk1.9以及jdk10以后版本的ext问题(添加扩展包问题)
  13. 八大数据分析模型之——用户模型(一)
  14. redis+哨兵+VIP(一主一从两哨兵)
  15. 【Unity3D】枪战游戏—弹孔设置
  16. 微信小程序——获取当前人微信绑定的手机号码
  17. 348高校毕业设计选题
  18. 一文读懂京东技术发展简史
  19. 腾讯云直播、生成腾讯推拉流
  20. python中led是什么意思_用于检测LED闪光灯的Python库

热门文章

  1. 时间段之间间隔的天数是如何计算出来的呢
  2. 简单即是伟大,真理在网络世界同样适用
  3. 新春特辑 | 智能工厂专题合辑 报告下载
  4. 【牛客网】美国节日(代码)
  5. Elasticsearch CCR 运作原理,以及如何在kibana上操作它
  6. html登陆ajax全局拦截,jq阻止ajax进行屡次提交
  7. scrollY,scrollTo
  8. 请教ASP.NET培训应该培训的内容和以及顺序
  9. 《分布式计算--原理、算法与系统》读书笔记
  10. 微生物网络分析学习手稿