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;
    }
  • 相关阅读:
    一些博客
    【iOS】得到当前年、月、周的第一天和最后一天
    iOS学习路线
    UI开发--响应者链条
    通知中心 NSNotificationCenter
    UITableView的编辑(插入、删除、移动)
    FMDatabaseQueue 如何保证线程安全
    理解 dispatch_get_specific
    instancetype
    【转】手把手教你ARC——iOS/Mac开发ARC入门和使用
  • 原文地址:https://www.cnblogs.com/xiongmao-cpp/p/6372096.html
Copyright © 2011-2022 走看看