PAT (Advanced Level) 1085. Perfect Sequence (25)
Posted Fighting Heart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT (Advanced Level) 1085. Perfect Sequence (25)相关的知识,希望对你有一定的参考价值。
可以用双指针(尺取法),也可以枚举起点,二分终点。
#include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<queue> #include<stack> #include<algorithm> using namespace std; int n; long long k; long long a[100000 + 10]; int main() { scanf("%d%lld", &n, &k); for (int i = 1; i <= n; i++) scanf("%lld", &a[i]); sort(a + 1, a + 1 + n); int ans = 0; for (int i = 1; i <= n; i++) { int p; int L = i, R = n; while (L <= R) { int mid = (L + R) / 2; if (a[mid] <= a[i] * k) { p = mid; L = mid + 1; } else R = mid - 1; } ans = max(ans, p - i + 1); } printf("%d\n", ans); return 0; }
以上是关于PAT (Advanced Level) 1085. Perfect Sequence (25)的主要内容,如果未能解决你的问题,请参考以下文章