• 洛谷 P1505 陶陶摘苹果 啊呸 。。苹果摘陶陶


    题目背景

    根据2005年的Noip普及组第一题衍生出的一题。

    但是有一点点的恶搞成分在里面.....

    题目描述

    话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份>.<然后把他们挂在树上,准备摘取。

    摘取的规则是,一个苹果只能摘一个陶陶,且只能在它所能摘到的高度以下的[b]最高的[/b]陶陶,如果摘不到的话只能灰溜溜的走开了>.<给出苹果数目及每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后剩下多少个陶陶……

    输入输出格式

    输入格式:

    第一行为两个数,分别为苹果的数量n和陶陶的数量m(n,m<=2000)

    以下的n行,分别为各个苹果能够到的最大高度。

    再接下来的m行,分别为各个陶陶的高度。

    高度均不高于300。

    当然了,摘取的顺序按照输入的“苹果够到的最大高度”的顺序来摘。

    输出格式:

    输出仅有一个数,是剩下的陶陶的数量

    输入输出样例

    输入样例#1:
    5 5
    9
    10
    2
    3
    1
    6
    7
    8
    9
    10
    
    输出样例#1:
    3

    题目很简单,样例特别水,但是有点坑。。。
    高度为0的苹果不能摘
    代码如下
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int apple[100000];
    int taotao[1000000];
    int cnt,n,m;
    bool cmp(int x,int y)
    {
        return x>y;
    }
    int main()
    {
        cin>>n>>m;
        int now=n;
        for(int i=1;i<=n;i++) cin>>apple[i];
        for(int i=1;i<=m;i++) cin>>taotao[i];
        sort(taotao+1,taotao+m+1,cmp);
        //sort(apple+1,apple+n+1,cmp);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                if(apple[i]>taotao[j]&&taotao[j]>0)
                {
                    taotao[j]=-1;
                    break;
                }
        for(int i=1;i<=m;i++)
            if(taotao[i]!=-1) cnt++;
        cout<<cnt<<endl;
        return 0;
    }
  • 相关阅读:
    P1604&P1601
    【USACO OPEN 10】hop
    [usaco2008feb_gold]路面修整
    bzoj1016: [JSOI2008]最小生成树计数
    bzoj1015: [JSOI2008]星球大战starwar
    bzoj1014: [JSOI2008]火星人prefix
    [bzoj3223]文艺平衡树
    bzoj3224: Tyvj 1728 普通平衡树
    bzoj1012: [JSOI2008]最大数maxnumber
    P3369 【模板】普通平衡树 (splay 模板)
  • 原文地址:https://www.cnblogs.com/chen74123/p/6710734.html
Copyright © 2020-2023  润新知