zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    备份
    Ibatis_dataMapper
    查询成绩都大于80分的学生
    删除文件的工具
    从运行中启动收索引擎
    数据库Northwind
    搭建Android开发环境
    数据库知识结构
    数据库MedicineMis_STD
    数据库work
  • 原文地址:https://www.cnblogs.com/NaCl/p/4724950.html
Copyright © 2011-2022 走看看