1085. Perfect Sequence (25)【二分查找】——PAT (Advanced Level) Practise
来源:互联网 发布:c语言求1000以内素数 编辑:程序博客网 时间:2024/06/08 10:03
题目信息
1085. Perfect Sequence (25)
时间限制300 ms
内存限制65536 kB
代码长度限制16000 B
Given a sequence of positive integers and another positive integer p. The sequence is said to be a “perfect sequence” if M <= m * p where M and m are the maximum and minimum numbers in the sequence, respectively.
Now given a sequence and a parameter p, you are supposed to find from the sequence as many numbers as possible to form a perfect subsequence.
Input Specification:
Each input file contains one test case. For each case, the first line contains two positive integers N and p, where N (<= 10^5) is the number of integers in the sequence, and p (<= 10^9) is the parameter. In the second line there are N positive integers, each is no greater than 10^9.
Output Specification:
For each test case, print in one line the maximum number of integers that can be chosen to form a perfect subsequence.
Sample Input:
10 8
2 3 20 4 5 1 6 7 8 9
Sample Output:
8
解题思路
排序后二分查找即可
AC代码
#include <cstdio>#include <vector>#include <algorithm>using namespace std;int main(){ long long n, p, t; vector<long long> v; scanf("%lld%lld", &n, &p); for (long long i = 0; i < n; ++i){ scanf("%lld", &t); v.push_back(t); } sort(v.begin(), v.end()); int cnt = 0; for (int i = 0; i < v.size(); ++i){ t = p * v[i]; int tmp = distance(v.begin(), upper_bound(v.begin(), v.end(), t)) - i; cnt = max(cnt, tmp); } printf("%d\n", cnt); return 0;}
- 1085. Perfect Sequence (25)【二分查找】——PAT (Advanced Level) Practise
- PAT (Advanced Level) Practise 1085 Perfect Sequence (25)
- PAT (Advanced Level) Practise 1085-Perfect Sequence (25)
- 【PAT】【Advanced Level】1085. Perfect Sequence (25)
- PAT 1085. Perfect Sequence (25)(二分查找)
- PAT Advanced Level 1085. Perfect Sequence (25)(Java and C++)
- PAT (Advanced Level) 1085. Perfect Sequence (25) 贪心算法
- 1051. Pop Sequence (25)【栈】——PAT (Advanced Level) Practise
- 1044. Shopping in Mars (25)【二分】——PAT (Advanced Level) Practise
- pat 1085 Perfect Sequence (25) 二分查找
- PAT (Advanced Level) Practise 1051 Pop Sequence (25)
- PAT (Advanced Level) Practise 1051 Pop Sequence (25)
- Pat(Advanced Level)Practice--1085(Perfect Sequence)
- 1003. Emergency (25)——PAT (Advanced Level) Practise
- 1010. Radix (25)——PAT (Advanced Level) Practise
- 1016. Phone Bills (25)——PAT (Advanced Level) Practise
- 1020. Tree Traversals (25)——PAT (Advanced Level) Practise
- 1029. Median (25)【排序】——PAT (Advanced Level) Practise
- Graphite详解
- ssdc_2016架构专场准备(一)
- C语言实现并发查找
- 蓝桥杯之最简单的分治法-----数字旋转方阵
- UVa 10976 Fractions Again?
- 1085. Perfect Sequence (25)【二分查找】——PAT (Advanced Level) Practise
- Android 中实现省市区的联动,在收货地址选择中用到
- 矩阵乘法
- 1086. Tree Traversals Again (25)【二叉树】——PAT (Advanced Level) Practise
- Swift柯里化(Currying)
- android_设备管理员
- Sublime Text3 C++ 设置
- 用jquery实现Tab切换菜单
- MentoCarlo算法求PI值_Java实现