首页 > 其他 > 详细

1030 完美数列

时间:2020-02-18 13:02:39      阅读:47      评论:0      收藏:0      [点我收藏+]

 two pointers通向扫描法。

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
LL a[100010] = {0};
int main() {
    int n,p,max = -1;
    cin>>n>>p;
    for(int i = 0; i < n; ++i)
        cin>>a[i];
    sort(a,a+n);//递增排序
    int i = 0,j = 0;
    while(i < n) {//two poniters同向扫描 
        while(j < n && a[j]<= a[i]*p)//用int型的话a[i]*p会溢出,所以数组定义成了long long类型
            j++;
        if(max < j-i)
            max = j-i;
        i++;
    }
    cout<<max;
    return 0;
}

技术分享图片

 

1030 完美数列

原文:https://www.cnblogs.com/keep23456/p/12325589.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!