站外题求助【二分查找】

题目总版

```cpp #include<bits/stdc++.h> using namespace std; int main() { freopen("flower.in","r",stdin); freopen("flower.out","w",stdout); int n,m; cin >> n >> m; int w[n],t[m]; for (int i = 0; i < n; i++) { cin >> w[i]; } for (int i = 0; i < m; i++) { cin >> t[i]; } for (int i = 0; i < n; i++) { if (binary_search(t, t + m, w[i])) { cout << w[i] << " "; } } return 0; } ``` 以上为本人的代码,10个样例全WA,错误为不输出
by lxt♛♛♛ @ 2021-01-13 08:45:43


用std::set它不香吗?
by decltype_auto @ 2021-01-13 09:09:19


虽然不知道有没有binary_search这种高级库函数,但是我觉得你不排序就二分相当的离谱
by HMP_Haoge @ 2021-01-13 09:37:17


@[HMP_Haoge](/user/254036) 有的,但是的确应该先排序
by GKxx @ 2021-01-13 10:57:42


@[lxt♛♛♛](/user/352775) 调用`std::binary_search`要确保传给它的序列是有序的,不然这个函数的行为是未定义的。
by GKxx @ 2021-01-13 10:58:32


@[GKxx](/user/72071) 哦,我明白了,谢谢,奉上关注
by lxt♛♛♛ @ 2021-01-13 12:54:35


|