zoukankan      html  css  js  c++  java
  • 1085. Perfect Sequence (25)

    Given a sequence of positive integers and another positive integer p. The sequence is said to be a "perfect sequence" if M <= m * p where M and m are the maximum and minimum numbers in the sequence, respectively.

    Now given a sequence and a parameter p, you are supposed to find from the sequence as many numbers as possible to form a perfect subsequence.

    Input Specification:

    Each input file contains one test case. For each case, the first line contains two positive integers N and p, where N (<= 105) is the number of integers in the sequence, and p (<= 109) is the parameter. In the second line there are N positive integers, each is no greater than 109.

    Output Specification:

    For each test case, print in one line the maximum number of integers that can be chosen to form a perfect subsequence.

    Sample Input:
    10 8
    2 3 20 4 5 1 6 7 8 9
    
    Sample Output:
    8
    先排个升序,然后用二分,对前一半的数找出最大的M,更新最大数m。
    代码:
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int main()
    {
        long long s[100000],n,p,m = 0;
        scanf("%lld%lld",&n,&p);
        for(int i = 0;i < n;i ++)
        {
            scanf("%lld",&s[i]);
        }
        sort(s,s + n);
        for(int i = 0;i < n/2;i ++)
        {
            int  l = i,r = n - 1,mid = (l + r)/2;
            while(l < r)
            {
                if(s[mid] > s[i] * p)r = mid - 1;
                else if(s[mid] < s[i] * p)l = mid + 1;
                else break;
                mid = (l + r) / 2;
            }
            if(s[mid] > s[i] * p)mid --;
            if(m < mid - i)m = mid - i;
        }
        printf("%lld",m + 1);
    }
  • 相关阅读:
    STL源代码剖析——STL算法之set集合算法
    iOS + Nodejs SSL/Https双向认证
    C语言将10进制转为2进制
    图的遍历算法
    Web—CSS概述
    苹果新的编程语言 Swift 语言进阶(八)--属性
    UVa 10700
    C++实现KMP模式匹配算法
    软件project
    oralce GROUPING SETS
  • 原文地址:https://www.cnblogs.com/8023spz/p/8297758.html
Copyright © 2011-2022 走看看