zoukankan      html  css  js  c++  java
  • PAT Basic 1030 完美数列 (25 分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 Mmp,则称这个数列是完美数列。

    现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。

    输入格式:

    输入第一行给出两个正整数 N 和 p,其中 N(≤)是输入的正整数的个数,p(≤)是给定的参数。第二行给出 N 个正整数,每个数不超过 1。

    输出格式:

    在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。

    输入样例:

    10 8
    2 3 20 4 5 1 6 7 8 9
    

    输出样例:

    8



    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
        int N,p;
        cin>>N>>p;
        long long a[N];
        for(int i=0;i<N;i++)
            cin>>a[i];
        sort(a,a+N);
        int res=0;
        for(int i=0;i<N;i++){
            for(int j=i+res;j<N;j++){
                if(a[j]<=a[i]*p) res++;
                else break;
            }
        }
        cout<<res;
        system("pause");
    }

    1个超时点分析:

    1.你如果没有用2个循环,那么概念有错

    测试用例:

    10 8
    1 2  3 4 5 6 7 8 9 100

    2.一个超时,可能是你的没有加else break,这个else break意味深长,让你的复杂度变为O(1)

    测试用例:取10^5个数让你慢慢遍历

    3.没有使用long long,10^9为10位数,并非9位,int的范围为2后面8个数,可能大小超出

    测试用例:中间放一个3(8个0),存在这样的数会溢出

  • 相关阅读:
    linux 系统管理(2) 文件或目录数量统计
    linux系统管理(1)之 内核编译选项查看
    apt 命令大全
    system命令
    ubuntu 登陆闪回
    网络知识之ipset
    mac 系统配置(一)
    windows下的qt编译器配置
    QT5.14.1+qwt-6.1.4编译
    无法打开源文件QtWidgets/QApplication
  • 原文地址:https://www.cnblogs.com/littlepage/p/11444487.html
Copyright © 2011-2022 走看看