1. 这道题出现在二分法,但是特殊之处在于,双指针是嵌套的,程序看上去有些像暴力枚举,但其实是利用了,如果i<j,a[i]*p>=a[j],那么一定有k在[i,j]范围内,a[i]*p>=a[k],以及a[k]*p>=a[j],那么对于一个比较大的i来说,想获得更大的差值,j是不用比上一个比较小的i得到的j小了。这里的限制关系是双指针降低复杂度的原理。

2. 起初困惑为什么外层的while条件已经有了j<n,内层的while还是出现这个条件,是因为在进行内层的循环时,顾不上外层的这个条件,所以内层对j进行增加操作时需要再写一遍。

AC代码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;const int maxn = 100010;
const int INF = 1000000000;//INF:下确界
const LL SUP = (1LL<<63)-1;//SUP:上确界
const double eps = 1e-5;LL Map[128];int A[maxn];int main(){int n,p;scanf("%d%d",&n,&p);for(int i=0;i<n;i++){scanf("%d",&A[i]);} sort(A,A+n);int i=0,j=0;int count = 0;while(i<n&&j<n){while(j<n&&(LL)A[i]*p>=A[j]){count = max(count,j-i+1);j++;}i++;}printf("%d",count);return 0;
}

1030 完美数列(two pointers解法)相关推荐

  1. 1030. 完美数列(25)

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

  2. 1030 完美数列 (25 分)二分

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

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

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

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

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

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

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

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

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

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

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

  8. 1026 程序运行时间—1030 完美数列

    目录 1026 程序运行时间 输入格式: 输出格式: 输入样例: 输出样例: 代码: 1027 打印沙漏 输入格式: 输出格式: 输入样例: 输出样例: 代码: 1028 人口普查 输入格式: 输出格 ...

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

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

最新文章

  1. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)
  2. JavaSE 学习参考:变量(1)
  3. 安装程序集'' policy.8.0.microsoft.vc80.atl,type=''win32-
  4. 我们到底为什么要用 IoC 和 AOP
  5. qgis oracle,用 QGIS 画矢量交通路线图
  6. 企业级应用_浪潮NF8480M5,支撑新时代的企业级应用
  7. 20多年前我住的平房
  8. 新手入坑自动驾驶,我是这么学习的......
  9. python输出excel能够识别的utf-8格式csv文件
  10. 医学知识-骨密度以及骨密度测量
  11. js实现表格隔行变色效果
  12. 部署asp.net mvc_在ASP.NET 2.0上部署ASP.NET MVC
  13. 激光雷达障碍物检测与追踪实战——基于欧几里德聚类的激光雷达障碍物检测
  14. 方舟服务器制作修改,方舟生存进化服务器模式设置教程
  15. 打造T型人才,团队管理,研发效能
  16. 美国的学位制度以及各学位的英文简写
  17. Windbg调试(使用方法)
  18. 1.25 Cubemx_STM32H743II—QSPI
  19. 判断点在线段的左边还是右边 判断线段是否相交
  20. Sublime Text 3—Project(项目管理)

热门文章

  1. node.js cannot find module
  2. [微信小程序]获取用户当前的城市
  3. iOS 没到年底NSDate 时间出错问题
  4. Dispatch 执行ABC任务,执行完成之后刷新UI,指定任务D
  5. python批量爬取文档
  6. MySQL , MHA , Haproxy 配置
  7. DIY 一套正版、免费、强大的 Visual Studio 2012 IDE
  8. 在IIS7里配置 ISAPI,运行dll程序,总提示下载dll
  9. Java中的两个关键字——super、this
  10. Spring笔记——8.基于XML Schema的简化配置