随笔分类 - 基本算法
摘要:【从特殊到一般】
【大问题分成一个个小块处理】
阅读全文
摘要:这是个典型的线程服务区间模型。一些程序要在一段时间区间上使用一段线程运行,问至少要使用多少线程来为这些程序服务? 把所有程序以左端点为第一关键字,右端点为第二关键字从小到大排序。从左向右扫描。处理当前区间时,提取出所有线程中最后一个被服务中的区间中右端点最小的区间(可用小根堆实现),若当前区间左端点
阅读全文
摘要:【最小值最大,二分判定】
【对以后的影响较优,可以贪心】
阅读全文
摘要:题目大意 给出几个点的坐标,雷达的覆盖范围为R,雷达布置在x轴上,问要覆盖这些点,至少需要多少雷达? 思路 由点的坐标我们可以得到能控制到该点的区间。由此问题就变成了:给出区间集合$R$,求一点集$P$,使得任意区间$[l,r]\in R, \exists p\in P且p\in[l,r]$。求这点
阅读全文
摘要:题目大意 给出一些区间和一些点,一个点如果在一个区间内,那么此两者可以匹配。问匹配数最大是多少。 题解 这样的题我们一般都是站在区间上去找与其配对的点。我们可以得到如下性质: 对于一段区间$[l_1,r_1]$的任意两点$a,b, aP(b\in[l_2,r_2])$。 什么叫“可能性大”呢?暂且规
阅读全文
摘要:【看到$2^k$,想二进制】【二进制按照数位分类讨论】
阅读全文
摘要:【将无用的具体数据转化为有用的粗略数字】
阅读全文
摘要:【多个对象变化,建立适当的搜索顺序,化繁为简】
阅读全文
摘要:二分搜索?莫非就是对于一个值单调递增的序列,给出$l,r$,将要找的值与区间$[l,r]$的中点值$a[m]$比较,大了$l$变成$m$,小了$r$变成$m$呗?但是如果不细究,很容易发生off one错误。下面我们将要讨论该问题。 序列内没有重复数字 定义 LowerBound:给出$l,r,x$
阅读全文
摘要:#include <cstdio> #include <cstring> #include <vector> using namespace std; void DoSth(vector<int>& chosen) { for(int i=0; i<chosen.size(); i++) print
阅读全文