PAT 1085. Perfect Sequence (25)

原创 2015年07月08日 16:00:55

一个很简单的题目,但是交了好几次都没有过,现在来分析一下:
第一次提交想当然的排序,然后找最小的,然后找到对应的最大值。
第二次是以为不是输出个数,是输出最大数,然后~
第三次终于想清楚了,遍历加二分,但是为啥还有一个没过呢,最后实在没办法查了一下资料,发现10^9 * 10 ^9超出int范围,改成long long就OK了
代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int n;
long long a[100005];
int midSearch(int i,long long max)
{
    int left = i,right = n;
    while(left < right)
    {
        int mid = (left + right)/2;
        if(a[mid] > max)
        {
            right = mid - 1;
        }else if(a[mid] < max)
        {
            left = mid +1;
        }else
            break;
    }
    if(a[(left + right)/2] == max)
        return (left + right)/2 - i +1;
    else
    return (left + right)/2 - i;
}
int main()
{
  int p;
  while(cin>>n>>p)
  {
    for(int i = 0; i < n; i++)
    cin>>a[i];
    sort(a,a+n);
    int t = 0;
    for(int i = 0; i < n; i++)
    {
      long long max = a[i] * p;
      int number  = midSearch(i,max);
      if(t <= number)
          t = number;
     }
    cout<<t<<endl;
  }
  return 0;
}

相关文章推荐

PAT--1085 Perfect Sequence(二分查找)

题意给一个正整数序列和正整数p,定义完美序列为 M

pat 1085. Perfect Sequence (25)

pat 1085. Perfect Sequence (25)

PAT-A1085. Perfect Sequence (25)

排序后twopointer做的。 #include #include #include #include using namespace std; #define MAX 100000+1...

1085. Perfect Sequence (25)

先对输入的序列进行排序,然后low对应开始min,high对应max位置+1,知道high到尾部,结束 存储过程中最大数量#include #include #include using names...
  • Bendaai
  • Bendaai
  • 2017年02月21日 14:20
  • 115

pat 1085. Perfect Sequence (25)

1085. Perfect Sequence (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000...
  • wyh7280
  • wyh7280
  • 2015年08月07日 20:47
  • 280

1085. Perfect Sequence (25)

Given a sequence of positive integers and another positive integer p. The sequence is said to be a "...

【PAT】1085. Perfect Sequence (25)

题目地址:http://pat.zju.edu.cn/contests/pat-a-practise/1085 ti
  • litoupu
  • litoupu
  • 2014年11月05日 15:48
  • 1263

PAT (Advanced Level) 1085. Perfect Sequence (25) 贪心算法

Given a sequence of positive integers and another positive integer p. The sequence is said to be a "...

pat 1085. Perfect Sequence (25)

pat 1085. Perfect Sequence (25) 时间限制 300 ms 内存限制 32000 kB 代码长度限制 1...

1085. Perfect Sequence (25)

Given a sequence of positive integers and another positive integer p. The sequence is said to be a "...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PAT 1085. Perfect Sequence (25)
举报原因:
原因补充:

(最多只允许输入30个字)