ToB企服应用市场:ToB评测及商务社交产业平台

标题: ZCMU_1117 [打印本页]

作者: 杀鸡焉用牛刀    时间: 2024-5-15 03:55
标题: ZCMU_1117

/相称于看墙,投影之类的东西让我数多少个建筑物/
解释感觉还不到位,以后再看看
先强调这不是我原创的,只是加了注释。找到原作者后会加链接。以及改变结构
  1. #include <cstdlib>
  2. #include <cassert>
  3. #include <stack>
  4. using namespace std;
  5. int main (void)
  6. {
  7.     int i, n, h, count;//
  8.     while ( scanf( "%d", &n ) != EOF )//多次
  9.     {
  10.         stack<int>S;//创建了栈
  11.         count = 0;//建筑物的个数
  12.         for ( i = 0; i < n ; i ++ )
  13.         {
  14.             scanf( "%d", &h );//当前高度
  15.             while ( (!S.empty()) && (S.top()>h) )
  16.             {
  17.                 count ++;
  18.                     //如果栈中的大于就表示栈中就有一个,所以加1
  19.                     //相当于这样Nn(这N大于周围肯定有一个)
  20.                 S.pop();
  21.             }
  22.             ``
  23.             if ( S.empty() )//空了话肯定要收入了
  24.             {
  25.                 if ( h != 0 )
  26.                     S.push(h);
  27.             }
  28.             else
  29.             {
  30.                 if ( S.top() == h )//一样只需要存放一次高度就行
  31.                     continue;
  32.                 else if ( S.top() < h )
  33.                     S.push(h);//nN(这时候不能保证所以先收入,如果后面一样)
  34.                 else // S.top() > h(我当前认为是为了保险)
  35.                     assert(false);
  36.             }
  37.         }
  38.         while ( !S.empty() )//多种参差不齐的高度
  39.         {
  40.             count ++;
  41.             S.pop();
  42.         }
  43.         printf( "%d\n",count );
  44.     }
  45.     return EXIT_SUCCESS;
  46. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4