PTA乙级题目1030 完美数列

给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。
现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。
输入格式: 输入第一行给出两个正整数 N 和 p,其中 N(≤10 5 )是输入的正整数的个数,p(≤10 9 )是给定的参数。第二行给出 N 个正整数,每个数不超过 10 9 。
输出格式: 在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。
输入样例: 10 8 2 3 20 4 5 1 6 7 8 9 输出样例: 8
思路:从数据的规模来看暴力肯定是会超时的,于是我就想到了开辟两个数组,一个数组v1存放原始数据,另一个存放v2乘p之后的数据。然后对数组进行排序,紧接着就用二分法在v1数组中找v2中元素所在的位置,找到的位置肯定是大于等于v2数组中的元素,我们想要的是第一个大于该元素的位置,然后减去

PTA乙级题目1030 完美数列最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/12974.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>