zoukankan      html  css  js  c++  java
  • CF821C Okabe and Boxes

    题目链接

    题目大意

    模拟栈的操作,要求从1~n依次弹出,若不符合可以排序,且不会有不合法情况,求最少排序次数。

    思路

    由于一定没有不合法情况,所以每次不符合顺序时可以直接清空,遇到栈为空时仍然要求弹出,则说明这个数已经提前弹出了。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<vector>
     4 using namespace std;
     5 vector<int>v;
     6 int n,now=1,ans;
     7 char ch[11];
     8 int main()
     9 {
    10     scanf("%d",&n);
    11     int t;
    12     for(int i=1;i<=2*n;i++)
    13     {
    14         scanf("%s",&ch);
    15         if(ch[0]=='a')
    16         {
    17             scanf("%d",&t);
    18             v.push_back(t);
    19         }
    20         else
    21         {
    22             if(!v.empty())
    23             {
    24                 if(v.back()!=now)
    25                 {
    26                     v.clear();
    27                     ans++;
    28                 }
    29                 else
    30                     v.pop_back();
    31             }
    32             now++;
    33         }
    34     }
    35     printf("%d
    ",ans);
    36     return 0;
    37 }
  • 相关阅读:
    hdoj 1872 稳定排序
    nyoj 60 谁获得了最高奖学金
    hdoj 2066 一个人的旅行
    nyoj 8 一种排序
    bzoj1798 1
    bzoj4031
    SPOJ-HIGH
    学习笔记::矩阵树定理
    学习笔记::树上莫队
    Strip
  • 原文地址:https://www.cnblogs.com/fantasquex/p/9350620.html
Copyright © 2011-2022 走看看