随笔分类 -  技巧

一些神秘且不一定有用的东西
摘要:当题目中有直角坐标系并且有上下左右移动的限制时,由于 \(x\) 移动时 \(y\) 不能动,导致 \(x\) 和 \(y\) 有限制不方便我们处理,可以将坐标系逆时针旋转 \(45\) 度,再放大 \(\sqrt{2}\) 倍,具体操作就是把所有点 \((x,y)\) 的坐标变为 \((x+y,y 阅读全文
posted @ 2022-03-10 17:19 llmmkk 阅读(40) 评论(0) 推荐(0)
摘要:前后缀优化建图是指一个点连向的区间一定是一段前缀或一段后缀的形式。 这种情况前后缀可以做到比线段树优化建图 \(O(n\log n)\) 边数更优的 \(O(n)\) 的边数. 实现起来也比线段树更简单: 这样就是 \(u\) 对之前所有点都连边了,当然也可以做到一段前缀或后缀向某个点连边。 但满足 阅读全文
posted @ 2022-02-23 12:16 llmmkk 阅读(583) 评论(1) 推荐(1)
摘要:大部分来源是OIwiki 说到底邻接矩阵也是矩阵,也是用来描述一个状态转移过程的,这个状态可以是一个点集(向量),也可以是所有点对(矩阵)。 首先是用起点向量乘邻接矩阵转移到终点向量。 快速求从一些起点走 \(k\) 步能到达的点 可以用起点向量乘上邻接矩阵的 \(k\) 次方表达,可以用 bits 阅读全文
posted @ 2022-02-23 11:56 llmmkk 阅读(304) 评论(0) 推荐(0)
摘要:记录一下遇到过的组合式子 $\binom n m=\binom{n-1}{m-1}+\binom{n-1}m$ $\sum\limits_{i=0}^n a^i b^{n-i}\binom ni=(a+b)^n$ 对任意正整数 $x$,$\sum\limits_{i=1}^{n}\binom i x 阅读全文
posted @ 2022-02-21 12:17 llmmkk 阅读(80) 评论(1) 推荐(0)
摘要:Z算法其实和kmp很像,kmp是从 \(i\) 往前的最长前缀匹配,Z是从 \(i\) 往后的最长前缀匹配,所以建议做邪王真串一次性复习两个匹配算法 Z-algorithm 与循环节 [NOIP2020] 字符串匹配 中用到了Z算法求某个前缀的最长循环次数,大概是这样: 原 \(S\) 串上红蓝段匹 阅读全文
posted @ 2022-01-18 20:17 llmmkk 阅读(63) 评论(0) 推荐(0)
摘要:在一类问题中,我们会使用时间复杂度和边数有关的算法,如【HNOI2019】校园旅行中的暴力算法,\(O(n+m)\) 的 Dijkstra,\(O(n+m)\) 的 tarjan 等,此时可能会由于边数太大而导致算法复杂度过大,此时的一个优化方向就是减少边数的规模,比如[【HNOI2019】校园旅行 阅读全文
posted @ 2021-11-19 09:53 llmmkk 阅读(549) 评论(0) 推荐(1)
摘要:平面图 平面图就是所有边都不相交的图,如 看起来相交了,但实际上没有相交,和下图等价,就是一个平面图 对偶图 对偶图是伴随平面图的一张图, 具体来说就是把原来平面图里的每个面当做一个节点 这些节点之间的边是和原图的边相交的,对偶图边权值等于原平面图边的权值 具体地: 设平面图为 \(G\),对偶图为 阅读全文
posted @ 2021-11-17 10:46 llmmkk 阅读(1818) 评论(0) 推荐(6)
摘要:首先下载这个 把里面的 testlib.h 扔到Dev的 \MinGW32\i686-w64-mingw32\include 里面就可以正常引用了。 引用方法是 include"testlib.h" 如果是在考试中验证自己的程序是否正确,只需要运行一次 checker.cpp 得到 checker. 阅读全文
posted @ 2021-11-12 12:01 llmmkk 阅读(781) 评论(1) 推荐(0)