立志用最少的代码做最高效的表达


PAT乙级最优题解——>传送门


给定一个正整数数列,和正整数 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


先贴耗时:


代码

动归思想, 不算排序,时间复杂度接近O(n)

#include<bits/stdc++.h>
#define MAX_LEN 100010
using namespace std;
long long a[MAX_LEN];
int main() {ios::sync_with_stdio(false);int n, p; cin >> n >> p;for(int i = 0; i < n; i++)  cin >> a[i];sort(a, a+n);int Max = 0, t_Max = 0, flag = 0; for(int i = 0; i < n; i++) {if(a[flag]*p >= a[i]) Max++; //如果大于等于,Max就一直累加else {                  //判断等式是否成立,若不成立,则flag向后推,把Max原来加的减回去,直到等式成立while(a[flag]*p < a[i]) { Max--; flag++;}Max++;   //执行到这,a[flag]*p>=a[i],但下次循环i会自加,因此记录这次的累加记录}if(t_Max < Max) t_Max = Max;  //更新t_Max}cout << t_Max << '\n';return 0;
}

每日一句

每一个不曾起舞的日子,都是对生命的辜负。

【最优解法】1030 完美数列 (25分)_23行代码AC相关推荐

  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. 【PAT乙级】1030 完美数列 (25 分)

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

  7. 【题意+分析】1067 Sort with Swap(0, i) (25 分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given any permutation of the numbers {0, 1, 2,-, N−1}, it is easy ...

  8. 【附超时原因】1055 The World‘s Richest (25 分)_42行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Forbes magazine publishes every year its list of billionaires bas ...

  9. 【最简解法】1048 Find Coins (25 分)_18行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Eva loves to collect coins from all over the universe, including ...

最新文章

  1. HTML DOM Console对象
  2. Python基础知识学习_Day5
  3. linux top 报错 TERM environment variable not set.
  4. Java工程中引用Base64编码解码小记
  5. iOS核心动画学习整理
  6. 怎样把php文件改成固定大小,php修改上传文件大小限制的方法
  7. el-input 输入框类型;只能输入数字的输入框;保留两位小数输入框;只能输入正整数和0的输入框;手机号正则校验;车牌号码正则校验
  8. edit控件自动换行 mfc_VS2010/MFC编程入门:如何创建对话框模板和修改对话框属性?...
  9. 使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL...
  10. php编译安装swoole,PHP7 源码编译安装 Swoole 扩展
  11. controller接收json数据_这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了
  12. Python接口测试
  13. jquery扩展提示框
  14. 容器技术Docker K8s 16 容器服务ACK基础与进阶-容器网络管理
  15. 怎么在桌面添加便签小工具,win7桌面便签小工具应该怎么添加
  16. Android使用NanoHttpd在app内搭建https server(二)
  17. XP系统时间同步和开启WindowsTime服务
  18. MySQL操作语句(快速办公)
  19. JS时间的计算,剩余时间的计算
  20. lol服务器不稳定领皮肤,LOL免费领“源代码娜美”皮肤 官方致歉游戏卡顿问题...

热门文章

  1. 如何让你的大文件上传变得又稳又快?
  2. JS组件系列——表格组件神器:bootstrap table
  3. 单元测试之更强大的powermock
  4. MyBatis(四)MyBatis插件原理
  5. 慌!还不了解Java中的分支预测?!
  6. Kafka冷门知识——主题删除背后的秘密
  7. MQ 正在变成臭水沟
  8. C++中的继承(二)
  9. 实时音视频助力在线教育风口
  10. 音视频技术开发周刊 58期