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);
    }
  • 相关阅读:
    CSS基础——基本单位
    CSS基础——表格
    CSS基础——列表
    Single-Source Shortest Paths
    Maximum Flow
    Breadth-First Search
    Depth-First Search (III)
    Depth-First Search (II)
    Depth-First Search (I)
    Simple Complete Search
  • 原文地址:https://www.cnblogs.com/8023spz/p/8297758.html
Copyright © 2011-2022 走看看