zoukankan      html  css  js  c++  java
  • hdu 4252 A Famous City

    题意:
    一张相片上的很多建筑相互遮住了,根据高低不同就在相片上把一座高楼的可见部分作为一个矩形,
    并用数字描述其高度,若一张相片上的两个建筑群中间有空地,高度则为0;求最少有多少个建筑;

    分析:

    输入的0不是建筑,则输入的总个数减去0的个数就是最多可能有的建筑数;
    再从第一个开始从前往后搜,若发现比它高的则继续搜,若发现比它低的则说明它是一个独立的建筑,
    这时可以返回搜其它的;若与它相等,说明这时它们还没有出现比它们低的建筑,则视其为同一个建筑,
    则ans减1;

     1 #include<cstdio>
     2 #include<cstring>
     3 #define maxn 100001
     4 using namespace std;
     5 int n,a[maxn];
     6 int main()
     7 {
     8     int cas=0;
     9     while(scanf("%d",&n)!=EOF)
    10     {
    11         int ans=n;
    12         for(int i=1;i<=n;i++)
    13         {
    14             scanf("%d",&a[i]);
    15         }
    16         for(int i=1;i<=n;i++)
    17         {
    18             if(a[i]==0)
    19                 ans--;
    20             else
    21             {
    22                 for(int j=i+1;j<=n;j++)
    23                 {
    24                     if(a[j]<a[i])
    25                         break;
    26                     if(a[j]==a[i])
    27                     {
    28                         ans--;
    29                         break;
    30                     }
    31                 }
    32             }
    33         }
    34         printf("Case %d: %d
    ",++cas,ans);
    35 
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    BCP 命令
    模板复习【updating】
    bzoj3716/4251 [PA2014]Muzeum
    bzoj4318 OSU!
    uoj308 【UNR #2】UOJ拯救计划
    bzoj4695 最假女选手
    省队集训 Day7 选点游戏
    hdu5828 Rikka with Sequence
    bzoj2482 [Spoj1557] Can you answer these queries II
    省队集训 Day6 序列
  • 原文地址:https://www.cnblogs.com/tsw123/p/4437547.html
Copyright © 2011-2022 走看看