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

    1030. 完美数列(25)
    
    给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
    
    现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。
    
    输入格式:
    
    输入第一行给出两个正整数N和p,其中N(<= 105)是输入的正整数的个数,p(<= 109)是给定的参数。第二行给出N个正整数,每个数不超过109。
    
    输出格式:
    
    在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。
    
    输入样例:
    10 8
    2 3 20 4 5 1 6 7 8 9
    输出样例:
    8

    分析:用双指。i指向当前最小元素,j指向当i为最小元素是满足规则的最大元素的下一个元素。计算出当前完美数列的元素个数,并与最大的元素个数进行比较更新。

    #include <iostream>
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    long long input[100010];
    int main()
    {
        int n,p;
        cin>>n>>p;
        for(int i=0;i<n;i++)
        {
            scanf("%I64d",&input[i]);
        }
        sort(input,input+n);
        int max_num=0;
        for(int i=0,j=i+1;i<n;i++)
        {
            int now_long=0;
            while(j<n&&input[j]<=input[i]*p)
            {
                j++;
            }
            if(j<n)
            {
                now_long=j-i;
            }
            else if(j>=n)
            {
                if(input[j-1]<=input[i]*p)
                {
                    now_long=j-i;
                }
                else
                {
                    now_long=0;
                }
            }
            
            if(now_long>max_num)
            {
                max_num=now_long;
            }
        }
        printf("%d
    ", max_num);
        return 0;
    }
  • 相关阅读:
    JS事件处理中心的构想
    form的novalidate属性
    AOP思想在JS中的应用
    推行浏览器升级提示,从自己做起
    doT.js模板引擎
    关于JS获取元素宽度的一点儿思考
    类似百度图片,360图片页面的布局插件
    ASCII、Unicode、UTF-8编码关系
    python字符串格式化符号及转移字符含义
    python字符串的方法介绍
  • 原文地址:https://www.cnblogs.com/xiongmao-cpp/p/6372096.html
Copyright © 2011-2022 走看看