1030 完美数列 (25 分)

给定一个正整数数列,和正整数 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思路  先对数列进行排序,然后枚举左端点也就是最小值m,然后查找一个尽可能大的右端点M使得M<=m*p,由于数列已经排序,所以可以使用二分查找。upper_bound()返回第一个大于待查找元素的数列元素的下标,如果没有找到,返回第n个元素(不存在),所以需要进行返回值判断。注意点是m*p会超过int。code 1:手写二分
#include<iostream>
#include<string>
#include<vector>
#include<string>
#include<cstdio>
#include<cmath>
#include<string.h>
#include<algorithm>
#include<unordered_map>
#include<stack>
using namespace std;int main()
{int n,p;scanf("%d%d",&n,&p);long long int a[n];for(int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);int maxv=0;for(int i=0;i<n;i++){int left=i,right=n-1,ans=-1;while(left<=right){int mid=left+(right-left)/2;if(a[mid]<=a[i]*p){ans=mid;left=mid+1;}elseright=mid-1;}if(ans!=-1)maxv=max(maxv,ans-i+1);}cout<<maxv;return 0;
}

code2 使用库函数

#include<iostream>
#include<string>
#include<vector>
#include<string>
#include<cstdio>
#include<cmath>
#include<string.h>
#include<algorithm>
#include<unordered_map>
#include<stack>
using namespace std;int main()
{int n;long long p;scanf("%d%lld",&n,&p);long long int a[n];for(int i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);int maxv=0;for(int i=0;i<n;i++){int index=upper_bound(a+i,a+n,a[i]*p)-a;if(index==n)index--;while(a[index]>a[i]*p) index--;maxv=max(maxv,index-i+1);}cout<<maxv;return 0;
}

 

转载于:https://www.cnblogs.com/zhanghaijie/p/10406416.html

1030 完美数列 (25 分)二分相关推荐

  1. C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)

    1030 完美数列 (25 分) 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可 ...

  2. PAT乙级1030 完美数列 (25 分)

    1030 完美数列 (25 分) 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可 ...

  3. 【PAT乙】1030 完美数列 (25分) 枚举

    1030 完美数列 (25分) 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能 ...

  4. 【PAT (Basic Level) 】1030 完美数列 (25 分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. [输入 ...

  5. 1030 完美数列 (25 分)(c语言)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...

  6. 【最优解法】1030 完美数列 (25分)_23行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 ...

  7. 【PAT乙级】1030 完美数列 (25 分)

    题目地址 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; ...

  8. 1030. 完美数列(25)

    1030. 完美数列(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正整数数列,和正整数p,设这 ...

  9. 1030. 完美数列(25)-PAT乙级真题

    给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列. 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列. ...

  10. PAT乙级练习题1030 完美数列

    题目: 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. ...

最新文章

  1. Python 中常见的配置文件写法
  2. 使用SpringBoot开启微服务之旅
  3. 【学术相关】研究生第一篇学术论文常犯问题总结
  4. android java和c混合编程_C/C++在Java、Android和Objective-C三大平台下实现混合编程
  5. 腾讯云DevOps技术揭秘:新时代运维重器Tencent Hub最佳实践
  6. centos mysql 允许远程访问
  7. 深度linux缺点,原来国产深度系统有这些“缺陷”,难怪只有少数人在使用!
  8. 企业级账号 版本更新总结
  9. 智伴机器人广西团队_畅想科技 智绘未来——2020年全区乡村学校少年宫科技体验日活动在广西科技馆举办...
  10. POJ3287(BFS水题)
  11. ajaxfileupload 返回值_ajaxFileUpload上传带参数,返回值改成json格式
  12. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用
  13. 《C语言及程序设计》程序阅读——数组与指针
  14. 凯撒密码中有数字怎么办_密码学入门之密码
  15. excel表中怎么插入visio_Microsoft Visio2007中vsdx文件怎么打开|Visio插入表格方法
  16. Java输入/输出(I/O)流
  17. noob的python学习之路
  18. 纯C#实现JPEG解码器在超大图片切割中的应用
  19. 妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)
  20. 数据库驱动程序是什么?

热门文章

  1. 【HDU - 5009】Paint Pearls(dp,链表优化dp)
  2. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)
  3. 【CodeForces - 833A】The Meaningless Game(思维题,数学,可用牛顿迭代法,知识点总结)
  4. 【CF#706B】 Interesting drink (二分)
  5. [sicily]【1001】 会议安排(田忌赛马类贪心)
  6. createform用法_vue自定义表单生成器form-create使用详解
  7. java构建xml参数_Java中使用XML创建EMAIL模板
  8. django 返回ajax html,Django 前台通过json 取出后台数据
  9. MySQL 事务 | ACID、四种隔离级别、并发带来的隔离问题、事务的使用与实现
  10. 你真的了解静态变量、常量的存储位置吗?