随笔分类 -  基本算法

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