码迷,mamicode.com
首页 > 其他好文 > 详细

1085. Perfect Sequence (25)-PAT甲级真题

时间:2017-08-26 19:49:26      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:hat   print   解法   class   parameter   style   for   code   vector   

1085. Perfect Sequence (25)

时间限制
300 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CAO, Peng

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

 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> V;
int main()
{
    int n,cnt=0;
    long p;
    cin >> n >> p;
    long temp;
    long max = 0;
    if (n == 0)
    {
        cout << n;
        return 0;
    }
    V.resize(n);
    for (int i = 0; i < n; i++)
    {
        cin >> V[i];
    }
    sort(V.begin(), V.end());
    for (int i = 0; i < n; i++)
    {
        for (int j = i + max; j <= n - 1; j++)
        {
            if (V[i] * p >= V[j]){
                if (max < j - i + 1)
                    max = j - i + 1;
            }
            else break;//剪枝非常重要
        }
    }
    cout << max;
}

1 该题使用递归寻找解空间时时间空间都爆炸,不可使用。递归迭代每个问题都可思考解法。但在n数值大时,时间空间不可接受。

2 针对最大最小值相关的问题可以用排序解决。

3 适当剪枝减小开销。

 

 

1085. Perfect Sequence (25)-PAT甲级真题

标签:hat   print   解法   class   parameter   style   for   code   vector   

原文地址:http://www.cnblogs.com/patforjiuzhou/p/7435920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!