摘要:
题意:要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段。记第i条被插入的线段的标号为i。 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号。 解题关键:注意标志的作用,注意虽然存的是索引,但是线段树的范围是天数的范围,也就是线段树是依据天数建的树 复杂度:$ 阅读全文
摘要:
题目链接:http://www.tyvj.cn/p/1860 解题关键:模板题。贴一个代码详解 http://www.cnblogs.com/staginner/archive/2012/02/02/2335600.html 注意:一个字符串中的所有子串都必然是它的后缀的前缀 da算法,必须保证字符 阅读全文
摘要:
解题关键:rmq模板题,可以用st表,亦可用线段树等数据结构 log10和log2都可,这里用到了对数的换底公式 类似于区间dp,用到了倍增的思想 $F[i][j] = \min (F[i][j - 1],F[i + 1 < < (j - 1)][j - 1])$ 阅读全文
摘要:
解题关键:莫队最重要的是区间之间以$O(1)$的复杂度进行转化,由于电脑原因,后续补上公式推导。 阅读全文
摘要:
hdu1007 http://acm.hdu.edu.cn/showproblem.php?pid=1007 解题关键:分治算法求解,注意学习分治算法的写法 树上分治和数列分治待补。 阅读全文
摘要:
hdu1166,点修改,区间查询sum形式,最简单形式的线段树 1 #include<cstdlib> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdio> 5 #include<cmath> 6 #include<iostream 阅读全文
摘要:
解题关键:离线求区间第k小,主席树的经典裸题; 对主席树的理解:主席树维护的是一段序列中某个数字出现的次数,所以需要预先离散化,最好使用vector的erase和unique函数,很方便;如果求整段序列的第k小,我们会想到离散化二分和线段树的做法, 而主席树只是保存了序列的前缀和,排序之后,对序列的 阅读全文
摘要:
#include #include #include #include #include #include #include using namespace std; typedef long long ll; #define pi acos(-1.0) const int mod=1e9+7; const int maxn=1000007; bool is_prime[maxn]; in... 阅读全文
摘要:
解题关键:将每头牛看到的牛头数总和转化为每头牛被看到的次数,然后用单调栈求解,其实做这道题的目的只是熟悉下单调栈 此题为递减栈 数组实现: 阅读全文
摘要:
莫比乌斯有两种反演形式: \[\begin{array}{l}f(n) = \sum\limits_{d|n} {u(d)F(\frac{n}{d})} \\f(n) = \sum\limits_{n|d} {u(\frac{d}{n})F(d)} \end{array}\] 最简单筛法 线性筛法: 阅读全文