zoukankan      html  css  js  c++  java
  • 洛谷 P1138 第k小整数

    题目描述

    现有nn个正整数,n≤10000n10000,要求出这nn个正整数中的第kk个最小整数(相同大小的整数只计算一次),k≤1000k1000,正整数均小于3000030000。

    输入格式

    第一行为nn和kk; 第二行开始为nn个正整数的值,整数间

    用空格隔开

    输出格式

    kk个最小整数的值;若无解,则输出“NO RESULT”。

    输入输出样例

    输入 #1
    10 3
    1 3 3 7 2 5 1 2 4 6
    
    输出 #1
    3
    

    说明/提示

    n≤10000n10000

    详情

    一开始用桶排做的是70分,WA了3个,后俩改了改判断“NO RESULT”的分支语句

    if (k<m)cout<<"NO RESULT";
    else cout<<b[m];

    要判断m在不在k的范围内,不在的话肯定就是“NO RESULT”;

    就比如k有5个数,m却要求7个数,明显无解,则无解

    代码

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    long long bz,a[100005],k,b[30000],c,d,x,y,z,n,m,s;
    int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    cin>>x;
    a[x]++;
    }

    for(int i=1;i<=30005;i++){
    if(a[i]>=1){
    b[++k]=i;
    bz=1;
    }
    }
    if (k<m)cout<<"NO RESULT";
    else cout<<b[m];
    return 0;
    }

  • 相关阅读:
    867-转置矩阵
    704-二分查找
    选择排序
    999-车的可用捕获量
    66-加一
    观察者模式(1)
    命令模式(3)-宏命令
    命令模式(2)-命令接口中的撤销方法
    接口测试
    移动端测试
  • 原文地址:https://www.cnblogs.com/XzhouxxX/p/13442798.html
Copyright © 2011-2022 走看看