Can you find it?2446 csdn直达http://blog.csdn.net/jingttkx/article/details/51302721
发布日期:2022-02-08 04:20:46 浏览次数:6 分类:技术文章

本文共 849 字,大约阅读时间需要 2 分钟。

题解:将Ai+Bj+ck=s转化为:Ai+Bj=S-ck再利用二分法去查找

二分法:又叫做折半查找,主要的核心是函数Binsrch:(针对的是有序的一组数据进行查找,在进行之前先进行排序(从小到大))

感觉题中没有说明白,别人解题时直接默认 i j 为1.那就这样吧

-------------------------------

代码中用到了去重函数unique(针对的是有序的连续的相等的数的去重)

得到的返回值是最后一个数的地址,去重并不是将其删除,而是将其挪到了后面

  1. q=unique(d,d+q)-d;///去重函数unique(有顺序连续相同的去重) 值得我去学习 

奉上代码

#include 
#include
#include
#include
#include
using namespace std;int a[505],b[505],c[505];__int64 d[250025];///可能会超过int范围///二分查找函数int Binsrch(__int64 k,int low,int high){ int mid; while(low<=high) { mid=(low+high)>>1; if(d[mid]==k) { return 1; break; } else if(d[mid]>k) { high=mid-1; } else if(d[mid]
c[m-1]+d[q-1]) ///如果超越了最小和最大NO { printf("NO\n"); continue; } else { int t=0; for(int j=0; j

转载地址:https://blog.csdn.net/weixin_38960774/article/details/79390891 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Cup-hd2289·
下一篇:hd2298

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年09月23日 21时19分59秒