贪心与二分三分

集训前两天,大概了解,稍微会写了贪心与二分。

何为贪心?贪心是一种思维,比如说有10张纸币,你要取5张总面值最大的,那么我们每次取最大的纸币,就能解决这个问题,这就是贪心思维。所谓贪心思维,就是把一个大问题划分为无数小问题,而每个小问题都按照固定的方法解决(比如只取最大);

集训这几天接触到的贪心都是,很多区间,有左端点和右端点。然后呢,要么是对左端点排序,要么是对右端点排序。另外没参与排序的端点就参与后面的判断。

一些经典贪心模型

数轴上有n个开区间(ai,bi)。选择尽量多个区间,使得这些区间两两没有公共点。

轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定线段[s,t]。

数轴上有n个闭区间[ai, bi]。取尽量少的点,使得每个区间内都至少有 一个点(不同区间内含的点可以是同一个)。

二分呢,实际上就是一种查找方式,暴力法的优化,把On 时间化成了 Ologn 比如有的题目很明显是一个单调函数,而且范围很小,那就直接二分暴力求解。比如查找一个最大的值,而那个值太大就不符合题意,那就可以二分,直到锁定这个最大值。(前提,只要也只有该值大于临界值才不符合题意,,实际也就是单调。)但是呢二分只能解决单调,而三分能解决有一次单调性变化的函数。下面是模板。 还有 二分还有快速幂这个应用。

在这里插入图片描述类似二分的定义有:三分
midl = (left+right)/2;
midr = (midl+right)/2;

当midl靠近极值点时,right = midr;
否则left = midl;
即 永远舍弃离极值点远的那一段
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43328498/article/details/86580111