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

大作设计网站作品建设银行 网站

大作设计网站作品,建设银行 网站,网页素材库,湖北手机网站制作单值查找,更适用于有单调性的区间,没单调性的区间,也有可能能用 二分的思想 一.确定一个区间,使得目标一定在区间中(目标一定是单值) 二.找一个性质,满足两点 1.性质具有二段性 区间上每个数…


单值查找,更适用于有单调性的区间,没单调性的区间,也有可能能用

二分的思想

一.确定一个区间,使得目标一定在区间中(目标一定是单值)

二.找一个性质,满足两点

1.性质具有二段性 区间上每个数都可以判断是否满足这个性质,满足下列条件

2.答案,是二段性的分届点(百分之95满足这个条件)

整数二分

求第一段最后一个结果,用l=mid,r=mid-1;

求第二段第一个结果,用r=mid,l=mid+1;

活动 - AcWing

整数二分理论性质

20230210_151052.mp4

定义判断条件时注意,判断条件为真时,答案一定在该区间内,或者说,区间内一定要包含答案

模版1

	while(l<r){int mid=(l+r)>>1;if(判断条件)r=mid;//要求,判断条件为真时,答案一定在该区间内,区间内一定要包含此答案else l=mid+1;}
// 我们最终要找的边界是一个性质在右半区符合,在左半区不符合的性质。
//我们要找符合的右半区的左边界点。管中窥豹的判断check(mid)
//如果mid符合条件Mid是在右半区符合性质的半区中。要找左边界点的范围则更新为r = mid(包含Mid)。
//如果mid不符合条件,我们要找符合性质的左端点则l = mid + 1(已经确定mid是不符合的就从mid+1开始算)

模版2

判断条件为l=mid时,l+r+1

 while(l<r){int mid=(l+r)+1>>1;if(判断条件)l=mid;else r=mid-1;}
//+1是因为,如果l=r-1的时候,不加1会导致重复死循环
//例如下面,假如l=1,r=2,判断条件成立,会发生什么int mid=(l+r)>>1;//1+2除以2等于1.5,int类型向下取整,mid等于1if(判断条件)l=mid;//判断条件成立,l=mid,则l=1,初始状态l也=1,陷入无限循环else r=mid-1;

数的范围,这题不错,用到两个模板,下面是解答代码,题目acwing,洛谷都有。

#include<iostream>
#include<cstdio>
using namespace std;
int arr[100010];
int main()
{int n,m;scanf("%d %d",&n,&m);for(int i=0;i<n;i++)cin>>arr[i];for(int i=0;i<m;i++){int o;cin>>o;int l=0,r=n-1;while(l<r){int mid=(r+l)/2;//把这个数组划分成了两段性质,一段小于o,一段大于等于o//我们要求的是第二段第一个//>=o,mid符合条件,可能是第二段第一个,也可能不是//因为o现在可能是mid本身或者mid左边的数,所以只需要移动r,r=midif(arr[mid]>=o)r=mid;//判断条件,为真时,一定要包含答案else l=mid+1;//这里是表示mid<o,则答案一定在mid右侧,且一定不是mid本身,因为区间1里没有o//在mid右侧,把l移过来,因为答案不在原来的l到mid的区间,所以再右移1//变成区间mid+1到r,答案在这个区间内}if(arr[r]==o){cout<<r<<' '; l=r;//在这个区间内是有单调性的r=n-1;while(l<r) {int mid=(r+l)+1>>1;//因为写的是l=mid,所以r+l+1if(arr[mid]<=o)//这里把等于永远写在第一个判断里,才能符合更新理论性质,不用加减l=mid;//这里是l,所以(r+L)+1再除以2else r=mid-1;//因为等于情况在上面,下面判断条件r或者l本身肯定不等于所找点,r向左移,l向右移}cout<<r<<endl;}elsecout<<"-1 -1"<<endl;}return 0;
}

整数二分一直找到中间唯一一个数,而实数二分不同

实数二分

实数二分是一直找到足够小的某个数

例如

while(l<r)//这是整数二分判断条件,其实也可以看成
while(l!=r)//当l=r时候,就只剩下一个整数,结果就是ans(答案)
//但如果是实数二分,这里我们这么写
while(r-l>1e-6)

注意,题目主有要求取到第几位小数,我们要多取至少两位,保证精度

例如

题目要求取小数点后6位,我们的循环写成

while(r-l>1e-8)

while(r-l>1e-8)

很重要!!

二分适合求最大最小

经典题目

AcWing - 算法基础课

#include<iostream>
#include<cstdio>
using namespace std;
double l,n,r;
int main(){cin>>n;l=-10000,r=10000;while(r-l>1e-8){double mid=(r+l)/2;if(mid*mid*mid>=n)r=mid;else l=mid;}printf("%.6lf",r);return 0;
}

文章转载自:

http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://00000000.bzfLd.cn
http://www.dtcms.com/wzjs/614683.html

相关文章:

  • 软件开发有哪些seo辅助优化工具
  • 网站建设流程文字稿黄石网站设计制作
  • 手机网站地址网站备案表格下载
  • 做盗版漫画网站平台网站开发可行性分析
  • 益阳网站seo无代码网站建设培训
  • 做网站框架浏览时怎么变长智能网站搭建
  • 深圳有名的设计公司突唯阿网站seo
  • 临湘做网站黎平网站开发
  • 上海公司网站建设方案南充移动网站建设
  • 怎么做一个设计师网站安徽富通建设工程有限公司网站
  • 购物网站服务器价格广西建设职业技术学院管理工程系网站2014考试前培训时间
  • 90设计网站官网表格网站怎么做的
  • 网站开发市场规模东莞建设银行
  • 模板网站建设的弊端定制网站建设价格
  • 柳州网站建设价格太原网站建设案例
  • 备案网站名称怎么写中国十大网络营销公司
  • 佛山做网站的哪个好链接买卖是什么意思
  • 网站产品展示方案电商网站建设与课程设计
  • 深圳网站建设yuntianxia2022年必火的创业项目加盟
  • 手机网站建设语言如何实现网站生成网页
  • 营销型网站的建设要深圳做公司网站
  • 架设网站开发环境网页设计共享网站
  • 成都网站关键字优化开一个设计公司
  • 莆田网站建设招标阜新做网站
  • 宁波北仑做网站管理企业
  • 网络游戏带来的危害网站推广如何指定关键词优化
  • 可以做动画的网站网站seo推广方案
  • wordpress站内查找满分作文网
  • 网站开发系统调研目的做使用的网站有哪些
  • 网站开发产生的材料山东建设厅网站专职安全员