• 1279 扔盘子(51nod)


    题目链接

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1279

    这道题要求的就是当顶被封之前有多少盘被扔下去= =当顶被封住时 即使下面的盘子再小也不能扔下去

    我们用a[]保存井的宽度,数组b[]来保存盘子的大小

    首先盘子j要是能到达第i米,则需要满足min(a[0~i])>=b[j];

    所以我们只需保存最小值便可

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<iostream>
     4 #include<algorithm>
     5 #define maxn 10000
     6 using namespace std;
     7 int a[maxn],b[maxn];
     8 int main()
     9 {
    10     int n,m;
    11     scanf("%d %d",&n,&m);
    12     for(int i=0;i<n;i++)
    13     {
    14         scanf("%d",&a[i]);
    15     }
    16     for(int i=0;i<m;i++)
    17     {
    18         scanf("%d",&b[i]);
    19     }
    20     int ans=0;
    21     for(int i=1;i<n;i++)
    22     {
    23         a[i]=min(a[i-1],a[i]);
    24     }
    25     for(int i=0;i<m;i++)
    26     {
    27         for(--n;n>=0&&a[n]<b[i];--n);//求出当前的盘子被卡在第几层
    28             if(n>=0)
    29             ans++;
    30             else
    31             break;//当盘子到达井口时跳出循环
    32     }
    33     printf("%d
    ",ans);
    34     return 0;
    35 }
  • 相关阅读:
    重视需求
    某2个人的qq对话
    公司安全提示
    需求实施心得
    项目远景
    发布系统应注意的几小点问题
    把握项目开发的节奏
    Css介绍
    调研工作的思路
    网,无处不在
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580178.html
Copyright © 2020-2023  润新知