总结与转载
LingFengNJT
这个作者很懒,什么都没留下…
展开
-
康托展开及其逆运算
我们先科普一下康托展开定义:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!ai为整数,并且0<=ai<i(1<=i<=n)简单点说就是,判断这个数在其各个数字全排列中从小到大排第几位。比如 1 3 2,在1、2、3的全排列中排第2位。康托展开有啥用呢?维基:n位(0~n-1)全排列后,其...转载 2018-09-19 16:05:32 · 148 阅读 · 0 评论 -
位运算
1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。例如3(11)|2(10)=3(11)。3.’^’符号,x^y,会将两个十进制数在二进制下进行异或运算,然后返回其十进制下的值。例如3(11)^2(10)=...原创 2018-09-19 19:55:36 · 96 阅读 · 0 评论 -
论DFS(深度优先搜索)
DFS大法师:说了这么久的深搜(发的有关深搜的题解都说很快会写关于深搜的总结),今天终于写完了,(不是博主偷懒,是博主之前也没有弄得透彻,昨晚鄙人夜观天象,觉得今天时机成熟了)首先,深搜肯定是NOIP竞赛必不可少的方法,即使拿不到全分,也可以收收过路费,取得个不错的成绩的;深搜有一个基本的模板(当然我在深搜题解上,我都打了这个模板的):int search(int t){ ...转载 2018-10-09 09:16:34 · 776 阅读 · 0 评论 -
【模板】最近公共祖先(LCA)
定义LCA,最近公共祖先,是指一棵树上两个节点的深度最大的公共祖先。也可以理解为两个节点之间的路径上深度最小的点。我们这里用了倍增的方法求了LCA。我们的基本的思路就是,用dfs遍历求出所有点的深度。f[i][j]数组用来求的是距离节点i,距离2^j的祖先。可以知道,f[i][0]就是它的直接父亲。然后通过倍增的思路求出father数组的所有元素。然后进行lca。求lca的基本思路是:先让...原创 2018-10-09 10:46:35 · 231 阅读 · 0 评论