摘要:
原理 运用二分的方法进行查找,可以用于逆序对等题目。template出门右转百度。 用法 lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin 阅读全文
摘要:
unique unique一般先用sort将要处理的序列排序,因为unique只会“删除”相邻的重复元素。 我们定义一个数列a[]={1,3,3,4,5,6,6,7}(a.begin为a首元素的迭代器,a.end同理) unique(a.begin(),a.end())或者unique(a,a+a. 阅读全文
摘要:
erase详细解释及原理 我们先定义一个字符串string string.erase(iterator) iterator表示要删除元素的迭代器。 string.erase(it_begin,it_end) 两个元素,表示删除从begin到end-1的所有元素。 string.erase(0,1) 阅读全文
摘要:
线段树在n较小、操作较多的情况下效率很高。虽然如此,如果直接暴力进行修改的话还是会TLE得很惨。于是一个叫做懒标记的东西应运而生。 懒标记 why优秀:在修改一个节点时,若此点已经被懒标记所标记,我们就将此点懒标记取消,标记左右子节点传递下去,当被更新或者被查询时再更新节点,节约了根本不会被用到的花 阅读全文
摘要:
Backward Digit Sums 好熟悉的题目……但是忘了是怎么做的……好像是随机排列? 反正都是暴力,看了下网上的题解,好像也没有更好的正解了。有想法的告诉我一下蟹蟹~ 题意 我们可以用1~n这n个数字用类似杨辉三角的方法加起来,我们就可以把他们拆回去。这样的排列可能有多种,我们要它字典序最 阅读全文
摘要:
前言 前几天考试了发现这个东西完全不会欸……学了又忘真是讨厌至极QAQ所以又在网上找着看了看写一篇博客备忘。 学习笔记真的很有用! 分层图 这个很容易理解,来源就是在一些最短路的问题上题目又加了比如说主角可以用传送宝石进行折跃之类的问题(针对),即可以选择k条边把这些边的边权变为零。 怎么样解决呢? 阅读全文
摘要:
Dijkstra 算法 ~~我之前一直记的迪杰斯特拉的翻译导致我把 dijkstra 写成了 dijstra 或者 dijskra……~~ ~~我以后叫她迪杰克斯歘!~~ dijkstra 是用来在有向图或者无向图中寻找任意两个点的最小距离的算法。但是无法处理带负环的图和求最长路。 dijkstra 阅读全文
摘要:
费马小定理 对于任何互质数a,p,有 ap-1=1(mod p) 就是ap=a(mod p) 应用 求逆元 ap-2*p=1(mod p) 阅读全文
摘要:
DFS序 DFS序,算法如其名就是用DFS搞的序。没有学过DFS的同学先去看看吧(基本中的基本)这个算法就是依靠DFS将一个树状图用线性结构进行排列。因为树形结构每次更新查找总是很费时间,如果我们可以用某种方法把它转变成线性结构就可以用线段树或者树状数组很轻松地记录了。 要将一个树进行线性排列,我们 阅读全文