正经题解 | 文档写在变量名里面
2026-08-01 20:29:20
发布于:湖北
8阅读
0回复
0点赞
今天也是美好的变量名发抽的一天呢~
总体来说就是二分查找,但是因为不保证有序,所以还要存储原始下标并且排序
#include <iostream>
#include <algorithm>
using namespace std;
struct Position
{
int bottle_count;
int index_in_array;
};
Position a_array_full_of_the_struct_position_to_store_positon_infomations[1000005];
int n, q, m;
bool ASimpleCompareFunctionForTheStructPostionInTheQuestionA22593InACGO(Position p1, Position p2)
{
return p1.bottle_count < p2.bottle_count;
}
int ASimpleLowerBoundFunctionForTheArrayFullOfTheStructPostionBecauseSTLLowerBoundCannotUse(int m)
{
int l = 1;
int r = n;
while (l <= r)
{
int mid = l + (r - l) / 2;
if (a_array_full_of_the_struct_position_to_store_positon_infomations[mid].bottle_count == m)
{
return a_array_full_of_the_struct_position_to_store_positon_infomations[mid].index_in_array;
}
else if (a_array_full_of_the_struct_position_to_store_positon_infomations[mid].bottle_count > m)
{
r = mid - 1;
}
else
{
l = mid + 1;
}
}
return 0;
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a_array_full_of_the_struct_position_to_store_positon_infomations[i].bottle_count;
a_array_full_of_the_struct_position_to_store_positon_infomations[i].index_in_array = i;
}
sort(a_array_full_of_the_struct_position_to_store_positon_infomations + 1, a_array_full_of_the_struct_position_to_store_positon_infomations + n + 1, ASimpleCompareFunctionForTheStructPostionInTheQuestionA22593InACGO);
cin >> q;
while (q--)
{
cin >> m;
cout << ASimpleLowerBoundFunctionForTheArrayFullOfTheStructPostionBecauseSTLLowerBoundCannotUse(m) << endl;
}
}
这里空空如也





有帮助,赞一个