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

国外网页设计评论网站真正免费的网站建站平台有哪些

国外网页设计评论网站,真正免费的网站建站平台有哪些,展展示型网站开发,国外文创产品设计为什么把二分和离散化放一起:因为离散化其实是一种二分整数的过程。 二分 相信大家都接触过二分查找(折半查找),这就是二分的思想。 二分通过每次舍弃一半并不存在答案的区间,进而快速锁定要求的答案(二…

为什么把二分和离散化放一起:因为离散化其实是一种二分整数的过程。

二分

相信大家都接触过二分查找(折半查找),这就是二分的思想。

二分通过每次舍弃一半并不存在答案的区间,进而快速锁定要求的答案(二分一定有解,但解不一定就是答案,后面会说)

二分模板:

bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:
int bsearch_1(int l, int r)
{while (l < r){int mid = l + r >> 1;if (check(mid)) r = mid;    // check()判断mid是否满足性质else l = mid + 1;}return l;
}
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:
int bsearch_2(int l, int r)
{while (l < r){int mid = l + r + 1 >> 1;if (check(mid)) l = mid;else r = mid - 1;}return l;
}

说一下版子二为什么要+1:因为涉及到mid - 1,+1是为了防止数组越界的,l < r ,所以r > 0,所以(  + r + 1 >> 1) > = 1,因而r更新的时候一定大于等于0,这也就防止了越界。

当然这只是针对于整数二分的边界问题,浮点数二分就不用考虑这个多了,直接除2就可以。

例题:

1、AcWing 789. 数的范围 - AcWing

2、AcWing 790. 数的三次方根 - AcWing

题一:直接套用两个模板,二分出左右区间。判断-1的方法:首次二分出来的区间的下标对应的数组元素并不等于给定要查找的那个数。

题二:不要的左右边界设置成-n 和 n,这样无法处理小数的情况,因为他们的三次方根都会落在-n到n范围的外面,但它也会有解。这也解释了为什么二分一定有解,但是解不一定是答案(解不对)

离散化

先来看一下百科的离散化的定义:

离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。

通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:

原数据:1,999,100000,15;处理后:1,3,4,2;

原数据:{100,200},{20,50000},{1,400};

处理后:{3,4},{2,6},{1,5};

离散化,就是把一些分布很稀疏的数重新按着他的序号排序,比如我们现在有数据10^9、 1、 5000、 100000 这组数离散化之后的结果就是4、 1、 2、 3 可以看到结果其实就是他们的次序大小。

一般的我们先把这组数据排序然后在离散化,这样得到的结果就是1、2、3、4、5、6.... n.一组连续的整数,这样就可以存到数组里面然后随机访问。

当题目中给的数据范围很大,比如是-10^9到10^9,但是数据规模很小,如n = 10^5。这时候首当其中的就要考虑离散化。因为,我们无法创建一个合适大小的数组,所以基于数组随机访问的bucket等算法思想就无法使用,但当我们离散化之后就可以用一个10^5的数组去存放这些数,因为只有这些个数据有效。

在离散化的时候我们一般要考虑去重问题,可以理解成在同一个位置上存放两次数据,所以不需要给它重新分配下标。

然后说一下怎么去重:

unique函数:

他会把一段连续的数据内的相同元素删掉,并返回指向最后一个不重复元素的下一个地址的迭代器。

unique参数:两个维护范围的迭代器

这样我们就得到的了一个缩减版的数组和一个指向数组有效数据的下一个位置的指针,如果我们用vector的话调用erase函数把剩余的无效数据的部分释放掉就得到了一个无重复数据的容器。

现在我们得到了一个无重复数据的递增的vector,可以正式开始离散化了(离散化也是二分求下标的过程)。

离散化模板:

int find(int x)
{int l = 0, r = alls.size() - 1;while(l < r){int mid = l + r >> 1;if(alls[mid] >= x) r = mid;else l = mid + 1;}return r + 1;
}

解释一下参数:x为想要离散化数组的其中一个数据,返回值为离散化后的相对大小,或者叫新下标(这里是从1开始)。

例题:

这一题用得到知识点:离散化、前缀和、二分。

区间和

http://www.yidumall.com/news/66663.html

相关文章:

  • 做美食网站的素材cba目前排名
  • 注册网站花的钱做会计分录icp备案查询
  • 提高审美的网站推荐推广关键词如何优化
  • 公司品牌网站设计如何获取热搜关键词
  • 光谷网站制作seo思维
  • 网站502 解决办法网络营销做得比较成功的企业
  • 淘宝客网站怎么做视频自媒体引流推广
  • 关于珠海网站建设的优势网络黄页推广软件哪个好
  • 网站建设制作设计seo优化南宁google搜索引擎入口下载
  • 设计制作网站制作内容营销策略有哪些
  • 企业网站的建设与维护是什么什么是网络推广工作
  • 做企业网站排名优化要多少钱百度seo优化技巧
  • 网站建设和原则bing搜索 国内版
  • 网站开发行业竞争大吗茂名seo顾问服务
  • 网站开发用户自定义排序方案千锋教育培训多少钱
  • c2c的电子商务网站有哪些电商网站制作
  • 网站建设个人网上银行网站引流推广怎么做
  • 做织梦网站时图片路径显示错误嘉兴seo优化
  • 自己做网站都要什么seo外链发布技巧
  • 做网站软件j有哪些平台可以免费发广告
  • 免费软件网站有哪些北京最新消息今天
  • 孝感个人网站建设百度移动版
  • 厦门网站开发公seo推广服务
  • 本地的佛山网站建设百度公司招聘官网最新招聘
  • 网站建设马鞍山seo专业培训技术
  • 如何做网站链接分析长沙企业关键词优化哪家好
  • 对网站建设在电子商务中的看法谷歌搜索引擎
  • 网站框架地图怎样创建网页
  • 做网站 报价谷歌seo推广招聘
  • 长春建站模板评测比较好的网络优化公司