随笔分类 - 算法与数据结构整理
摘要:在OI竞赛中,当遇到数组的数据范围远远大于数组大小时,就可以使用离散化。 把A[1~N]数组的每一位都对应在[1~N]上的某个数字。当数组中有重复数据时,比较常用的方法就是lower_bound+unique, 这样的话离散化完的数据还是能保留重复的。
阅读全文
摘要:三分可以说是二分的升级版,二分是在有序数组中操作,而三分则是在单峰函数中操作。以凸函数为例,把区间三等分,L、A、B、R。当f(A)>f(B)时,就把B至R这一段舍弃掉,而当f(A)<f(B)时,就把L至A舍弃,当f(A)和f(B)相等时,就留下中间一段。 例题 luoguP3382
阅读全文
摘要:二分在C++ STL中可以直接使用,lower_bound 与 upper_bound 函数。lower_bound 代表在有序数组中找到第一个大与等于键值的位置, 而upper_bound代表第一个大于键值的位置,不过并不是所有与二分有关的可以用这两个函数。 在手动写二分时,主要要注意的是L R和
阅读全文
摘要:倒序存高精度整数,从个位开始对齐。输出时也倒序输出。 1.加法 2.减法 3.乘法 4.除法(高精除以高精)
阅读全文
摘要:普通排序:使用c++的stl工具就可以完成,在头文件中加入algorithm。例如要对数组a[1]~a[n]进行排序,sort(a+1,a+n+1)即可。 下面说一些sort的拓展。sort默认的是升序,要是需要改成降序,可以自己写一个cmp比较函数, 或者也可以在头文件中加入functional,
阅读全文

浙公网安备 33010602011771号