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 }
  • 相关阅读:
    mysql时间操作函数和存储过程
    puppet foreman
    mysql c haracter
    socket
    socket 网摘
    网络安全
    sqlite3 C接口
    spring 配置文件XSD地址
    programData
    网络安全数据包分析
  • 原文地址:https://www.cnblogs.com/fantasquex/p/9350620.html
Copyright © 2011-2022 走看看