二分搜索(binary search ) problem(hdu 2199)
problem link address :http://acm.hdu.edu.cn/showproblem.php?pid=2199
在顺序搜索的数组实现中,如果把分治思想思想应用于搜索过程,就会大大缩短搜索的总时间。
实现方法:把数据分为两部分,确定搜索关键字属于那一部分然后集中搜索这一部分,然后依次类推,每次把处理的部分分为两部分,因此,这种方法称为“二分法”。
关于本题:典型的二分查找。应为本题有明显的特征: 查找范围0~100,并且有唯一解。

1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 double ans(double a) 5 { 6 double s=8*a*a*a*a+7*a*a*a+2*a*a+3*a+6; 7 return s; 8 } 9 int main() 10 { 11 int T; 12 cin>>T; 13 while(T--) 14 { 15 double num; 16 cin>>num; 17 if(num<ans(0)||num>ans(100)) 18 { 19 cout<<"No solution!"<<endl; 20 continue; 21 } 22 double left=0; 23 double right=100; 24 while(left<right) 25 { 26 double mid=(right+left)/2.0; 27 double temp=ans(mid); 28 if(fabs(temp-num)<=1e-6) 29 { 30 printf("%.4lf\n",mid); 31 break; 32 } 33 else if(temp>num) 34 right=mid; 35 else 36 left=mid; 37 } 38 39 } return 0; 40 } 41 42 43 44 45 46
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?