• 1041. 二哥打飞机


    Description

    每当二哥45度仰望天空,他总是发现天上飞了许多飞机。

    “实在是太不爽了,看我把这些飞机全部打下来!”--二哥

    已知天上一共有N架飞机,从1...N编号,每架飞机有一个飞行高度。

    二哥会跟你说decrease i j,表示第i架飞机的高度下降了j。

    同时二哥还会一边问你findmin x,让你告诉他在高度大于x(不含等于)的飞机中哪一架飞机高度最低(如果相同,输出编号最小的)。

    通常情况下x很小,以致于经常99%的飞机高度大于x。

    高度有可能小于0哦。

    N<=100000,二哥开口次数<=10000

    Input Format

    见样例

    Output Format

    见样例

    Hint

    用堆做吧

    Sample Input

    5
    1 2 3 4 5
    findmin 4
    decrease 5 1
    findmin 3
    decrease 5 10
    findmin 3
    findmin -100
    

    Sample Output

    5
    4
    4
    5
    


    #include<iostream>
    using namespace std;
    
    int a[100001];
    int n;
    
    void decrease(int i,int j){
        a[i]-=j;
    }
    
    int findmin(int x){
        int t=0xffffff;
        int m=0;
        for(int i=1;i<=n;i++){
            if(a[i]>x && a[i]<t){
                t=a[i];
                m=i;
            }
        }
        return m;
    }
    
    int main(){
        //freopen("input.txt","r",stdin);
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        string s;
        int p,q;
        while(cin>>s>>p){
            if(s=="findmin"){
                cout<<findmin(p)<<endl;
    /*        for(int i=1;i<=n;i++){
                cout<<a[i]<<" ";
            }
            cout<<endl;
    */
            }
    
            if(s=="decrease"){
                cin>>q;
                decrease(p,q);
    /*
            for(int i=1;i<=n;i++){
                cout<<a[i]<<" ";
            }
            cout<<endl;
    */
            }
        }
        return 0;
    } 
  • 相关阅读:
    探索c#之一致性Hash详解
    Redis系列(三)-Redis发布订阅及客户端编程
    Redis系列(二)-Hredis客户端设计及开源
    关于电脑操作一些高效的方法工具
    探索c#之递归APS和CPS
    探索C#之系列目录导航
    探索c#之不可变数据类型
    SOA相关资料整理分享
    探索c#之尾递归编译器优化
    探索c#之函数创建和闭包
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/7994047.html
Copyright © 2020-2023  润新知