测试点4死活过不去,以后再想吧。。。
测试点三是长度为1.
#include<bits/stdc++.h>
using namespace std;
vector<long long> v;
int main() {
int maxnum = 0, n;
long long p, len = 0;
scanf ("%ld %lld", &n, &p);
vector<long long> v(n);
for (int i = 0; i < n; i++) scanf ("%lld", &v[i]);
sort (v.begin(), v.end());
for (int i = v.size() - 1, j = i; i >= 0; i--) {
for ( ; j >= 0; j--) {
if (v[i] <= v[j] * p) {
if (maxnum < i - j + 1) maxnum = i - j + 1;
}
}
}
printf ("%d", maxnum);
return 0;
}
本文探讨了一段C++代码,用于寻找一个数列中满足特定条件的最大长度递增子序列。代码首先读取输入的序列,然后进行排序,并采用双指针方法检查每个元素对,以确定满足条件的子序列长度。最终输出最大长度。
515

被折叠的 条评论
为什么被折叠?



