摘要: AutoX安途杯中山大学程序设计校赛(同步赛) G Stack Sort I 一开始想的是利用归并排序的原理将n个数分开再两两合并。 之后发现用基数排序的方法也可以,不过是把a[i]离散化之后再看成2进制后使用归并排序,因为看成2进制之后每个树都可以根据这一位01是什么分到2,3两个栈。 基数排序 阅读全文
posted @ 2021-10-25 20:22 Xu-daxia 阅读(37) 评论(0) 推荐(0) 编辑
摘要: F xay loves trees 很快找到两道签到题。因为是一场快乐的比赛中,结果就被卡住了。 显然这个集合在第一棵树上是一条链(链中点的深度连续递减)。 然后考虑第二棵树的限制,可以求出第二棵树每个点的欧拉序。有祖先的关系就是欧拉序包含。 然后就是求,第一棵树上满足在第二棵树上欧拉序不相交的最长 阅读全文
posted @ 2021-08-11 21:26 Xu-daxia 阅读(27) 评论(0) 推荐(0) 编辑
摘要: A Ares, Toilet Ares 阅读理解题,英语一定要好好学 D OR 重要结论,a+b=a|b+a&b 然后a+b和a|b的约数就可以转化到a&b和a|b的约数,然后按位考虑算出可能答案乘起来即可。 #include<iostream> #include<cstring> #include 阅读全文
posted @ 2021-08-11 21:13 Xu-daxia 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 2021“MINIEYE杯”中国大学生算法设计超级联赛7 1003 Fall with Trees 答案为一个三角的面积加上一堆梯形的面积(其实三角形也可以理解为上底为0的梯形doge),它们的高一定。 答案为设第x个梯形(包括三角)的下底为f(x)显然有 $f[1]=0,f[2]=x_{ron}- 阅读全文
posted @ 2021-08-11 21:02 Xu-daxia 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 虽然是第二次学后缀自动机,这个学习的过程在我看来仍然是学习过程中最困难的,因为这个东西比较抽象,应用的性质很多,即使是构造理解起来也十分困难。另外,讲解这个东西的博客都太长了,一个一个写着预计阅读时间一个小时?而且看一句就要好好想一会,不时还要往上翻,晦涩的定义也太多了让人产生抗拒。 写得真的好 我 阅读全文
posted @ 2021-07-31 11:14 Xu-daxia 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 也许应该叫后缀排序,是求出$sa[i]$,$rk[i]$的一种算法。 $sa[i]$代表排名为i的后缀的开始位置。 $rk[i]$代表开始位置为$i$的后缀的排名。 这是实现比原理要复杂的算法。 先求出$sa[i]$之后再求出$rk[i]$。 考虑先求出长度为1时候的$sa[i]$数组。这个时候$s 阅读全文
posted @ 2021-07-30 11:01 Xu-daxia 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 2021牛客暑期多校训练营4 B Sample Game 经典的期望dp,最后求得是平方可能会造成一些困扰。 设dp[i][0]代表选择了i之后步数的期望,dp[i][1]代表选择了i之后步数的平方的期望。 先考虑求出期望步数,枚举下次随机生成了哪一个数转移即可。 设$sum=\sum w[i]$ 阅读全文
posted @ 2021-07-30 09:50 Xu-daxia 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 2021“MINIEYE杯”中国大学生算法设计超级联赛2 1001 I love cube 问一个边长为$(n-1)$的立方体中的有多少等边三角形。 容易发现等边三角形的三个顶点一定要在边上且距离一个立方体的顶点等距离。 本来以为将边长为$(n-2)$的立方体的答案求出可以递推(上一次答案填上新立方 阅读全文
posted @ 2021-07-28 19:19 Xu-daxia 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 2021“MINIEYE杯”中国大学生算法设计超级联赛1 1001 Mod, Or and Everything 题目大意 求 \(\sum_{i=1}^{n-1}n\ mod\ i\) \(n<=10^{12}\) 打表找规律n的答案是小于n的第一个$2^x$再减去1。 #include<iost 阅读全文
posted @ 2021-07-21 18:18 Xu-daxia 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 2021牛客暑期多校训练营3 B Black and white 对于一个位置$(i,j)\(,选择这个位置的数就给\)(out_i,in_j)\(连一条边,考虑四个点\)(i,j)(i,k)(l,j)(l,k)$被涂成黑色对应了$out_i out_l$和$in_i in_l$构成的一个四元环。其 阅读全文
posted @ 2021-07-21 09:20 Xu-daxia 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 2021牛客暑期多校训练营1 A Alice and Bob 题目大意 两人博弈,每次一个人从一堆中拿 k 个,同时从另一堆拿 k * s(s >= 0) 个,问谁先不能拿。 10000 组数据,N ⇐ 5000 考虑到N十分小,使用SG函数解决。 使用记忆化搜索时,因为一个状态的SG函数的判断需要 阅读全文
posted @ 2021-07-21 08:52 Xu-daxia 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 点分治算法分析 点分治用来处理单词循环有关数上路径问题。 所有路径对答案的贡献其实可以分成,所有过一点的路径+所有不过这点的路径。 不过这点的路径怎么算?可以以这点为根到它的子树里分治解决。 所以现在问题只有:1、所有过这点的路径怎么解决?2、复杂度怎么保证? 问题二:可以每次分治时以重心为根。这样 阅读全文
posted @ 2021-07-14 17:34 Xu-daxia 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 使用均摊分析证明Splay复杂度 (PS:终于知道了二叉搜索树(\(binary search tree\))为什么叫$BST$。) 平衡树的一种,靠着旋转来保证复杂度。 怎么旋转?这已经说烂了,我比较关心的是$splay$的复杂度怎么证明,和为什么一定要使用双旋操作。 (PS:$Splay$居然是 阅读全文
posted @ 2021-07-12 14:56 Xu-daxia 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 牛客练习赛83 A追求女神 注意到小L可以准时到达当且仅当,时间与两个位置的莫比雪夫距离之差是2的倍数。 然后直接判断即可。 AC代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<al 阅读全文
posted @ 2021-06-06 12:57 Xu-daxia 阅读(21) 评论(0) 推荐(0) 编辑
摘要: FHQ FHQ是一种非旋Treap。没有了复杂的左/右旋操作所以十分适合菜鸡。 其保证复杂度的方法和Treap一样:给每一节点一个随机权记为$rad[i]$,然后使平衡树满足是关于$rad[i]\(的堆。构建二差搜索树时,树的形态唯一而且期望深度为\)(logn)$ *复杂度小证明: 这个思路来自于 阅读全文
posted @ 2021-05-31 17:38 Xu-daxia 阅读(52) 评论(0) 推荐(0) 编辑