当前位置: 首页 > news >正文

二分查找法

 P2249 【深基13.例1】查找

答案

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1000010;//10e+10int read(){//快读int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
}
int a[MAXN];int main(){int n=read(),m=read();for(int i=1;i<=n;i++)a[i]=read();while(m--){int x=read();int ans=lower_bound(a+1,a+n+1,x)-a;//别忘了-aif(x!=a[ans])printf("-1 ");//注意空格else printf("%d ",ans);//注意空格}return 0;}

P1102 A-B 数对

解答

#include <bits/stdc++.h>
using namespace std;long a[200001];
long N,C,ans;
int main(){cin>>N>>C;for(int i=1;i<=N;i++){cin>>a[i];}sort(a+1,a+N+1);for(int i=1;i<=N;i++){ans+=((upper_bound(a+1,a+N+1,a[i]+C)-a)-(lower_bound(a+1,a+N+1,a[i]+C)-a));}cout<<ans;return 0;
}

P1873 [COCI 2011/2012 #5] EKO / 砍树

题解1:二分查找法

#include<bits/stdc++.h>
using namespace std;
const long long N=10000010;
long long n,m,a[N],tmp,l,r,ans;
bool check(long long x){for(long long i=1;i<=n;i++)if(x<a[i])tmp+=a[i]-x;return m<=tmp;//骚写法,如果满足条件则返回1 
}
int main(){cin>>n>>m;for(long long i=1;i<=n;i++)cin>>a[i],r=r>a[i]?r:a[i];while(l<=r){long long mid=(l+r)>>1;tmp=0;if(check(mid))l=(ans=mid)+1;//在右区间查找,同时更新答案 else r=mid-1;//在左区间查找 }cout<<ans;return 0;
}

P1024 [NOIP2001 提高组] 一元三次方程求解

题解

#include <bits/stdc++.h>
using namespace std;double a,b,c,d;
double fc(double x)
{return a*x*x*x+b*x*x+c*x+d;
}
int main()
{double l,r,m,x1,x2;int s=0,i;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);  //输入for (i=-100;i<100;i++){l=i; r=i+1;x1=fc(l); x2=fc(r);if(!x1) {printf("%.2lf ",l); s++;}      //判断左端点,是零点直接输出。//不能判断右端点,会重复。if(x1*x2<0)                             //区间内有根。{while(r-l>=0.001)                     //二分控制精度。{m=(l+r)/2;  //middleif(fc(m)*fc(r)<=0) l=m; else r=m;   //计算中点处函数值缩小区间。}printf("%.2lf ",r);  //输出右端点。s++;}if (s==3) break;             //找到三个就退出大概会省一点时间}return 0;
}

 


http://www.mrgr.cn/news/59730.html

相关文章:

  • Rust教程
  • 网络编程_day3
  • 【OpenAI】第五节(图像生成)利用 OpenAI 的 DALL·E 实现自动化图像生成:从文本到图像的完整教程
  • python如何通过json以及pickle读写保存数据
  • Nature 正刊丨褐藻转录组沙漏
  • 二分查找算法 (算法详解+模板+例题)
  • linux-i2c驱动-ap3216c
  • 电机学习-SVPWM合成原理
  • InnoDB 存储引擎<二>页结构和行结构
  • 辣椒病害检测与分类数据集(猫脸码客 第226期 )
  • 代码随想录算法训练营第四十六天 | 188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费
  • PyCharm虚拟环境解释器问题:Python packaging tools not found.Install packaging tools
  • 【内网攻防】内网穿透隐秘隧道搭建
  • 【计网】网络层路由过程 ,理解IP分片与组装
  • Java 设计秒杀系统
  • 【万兴科技-注册_登录安全分析报告】
  • Next.js、Prisma 和 MySQL 实践示例
  • 深度解析百度搜索引擎点击结果:如何提高网站曝光率和用户满意度
  • TypeScript(中)+算法(二)
  • 2024 Blue Water CTF - The Great Escape
  • 整和 Wechaty机器人(Windows)
  • 【完整版】opencv-python-headless、opencv-python和opencv-contrib-python区别和联系
  • 香港海洋投资启动创新海洋牧场,领航全球海洋经济
  • 面向对象进阶(下)(JAVA笔记第二十五期)
  • 重构代码之状态与策略模式
  • 破解API加密逆向接口分析,看这篇就够了