当前位置: 首页 > 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://www.dtcms.com/wzjs/177334.html

相关文章:

  • 中国石化工程建设公司网站外包优化网站
  • 天蝎网站建设爱站网关键词查询网站
  • 行唐县网站建设公司东莞网络营销网站建设
  • 网站测试方法有哪些关联词有哪些 全部
  • 网页设计表格广东企业网站seo哪里好
  • 常州做上市公司律所网站优化公司开始上班了
  • 做营销网站建设价格短视频精准获客
  • 网站建设账单记账日360网站收录提交入口
  • 外贸做网站的好处重庆森林影评
  • 网站建设服务项目表格怎么弄一个自己的网址
  • 滨海新区网站建设推广文案怎么写
  • 响应式网站代码规范怎么做网站宣传
  • 手机网页微信登录入口搜索引擎优化的定义
  • 用群晖做网站服务器网站改版
  • 做网站的优势有哪些西安seo外包行者seo06
  • wordpress整合百度站内搜索域名检测工具
  • 浙江新地标建设集团网站网络营销案例100例
  • 重庆巴南区网站建设网站seo排名免费咨询
  • 四川省住房和城乡建设厅网站永久8x的最新域名
  • 上街区网站建设优化网站排名的方法
  • 网站建设公司擅自关闭客户网络自己怎么制作网页
  • 西安网站挂标电商网站制作
  • 怎样建网站赚钱成都网站推广哪家专业
  • 网站制作协议宁德市住房和城乡建设局
  • 什么样的网站才是好网站seo新手教程
  • 莘县网站开发优化营商环境心得体会个人
  • 网站有什么阿里域名注册官网
  • 网站制作专业的公司哪家好企业网站托管
  • 湖北省建设工程网站网站seo关键词优化技巧
  • 如何 套用模板做网站百度一下官网搜索引擎