![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Ada Chambers
在ICPC的泥潭中苦苦挣扎。。。
展开
-
博弈论和SG定理详解
文章目录博弈简介Nimm GameSG函数SG定理SG理论在基本Nimm Game的体现SG定理的理解与证明博弈简介有很多经典博弈模型,想都看是不可能的,简单列举如下:Bash GameFibonacci’s Game(要借助Zeckendorf定理)Wythoff Game(要借助Betty定理)还有最重要的Nimm Game,一类最基本的组合游戏(借助SG定理)所有博弈的基本思想都是一样的,都是先手想要赢,就必须尽力维持在自己操作后,所达到的局面能满足某些特殊的性质,而这些性质是终结态原创 2020-09-26 19:14:39 · 962 阅读 · 0 评论 -
hdu6832(2020hdu多校6t6)
题解所有最短路肯定都出现在最小生成树上。因为克鲁斯卡尔按顺序连边,前面已经连上的肯定最优,所有加起来比当前的还小。这个我感觉求单源多汇最短路后的剩余图其实和最小生成树其实是一样的。因为如果最小生成树的结论是对的,那么源点到所有点的最短路一定都在树上,剩余图就是这个最小生成树。我试了试都是可以AC的。开始初始化错了,少初始化了一堆东西,dfs停不下来,MLE。后来wa,因为枚举边端点dp计数没想清。AC代码dij版本(跑的较慢)#include<cstdio>#include&l原创 2020-08-07 21:15:36 · 281 阅读 · 0 评论 -
优先队列自定义比较函数
下面的代码实现从.v小到大的队列。是Codeforces Round #655 (Div. 2)D. Omkar and Circle的错误代码。#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;const int NN=2e5+10;struct ppp{ long long v; int l,r; int id;原创 2020-07-12 23:20:28 · 615 阅读 · 0 评论 -
欧拉筛筛出最小素因数
这个是个板子题。Educational Codeforces Round 89D. Two Divisors题目链接https://codeforc.es/contest/1366/problem/D题意找到a的两个因数,使得两个因数的和与原数a互素。一共2e5个a要弄。吐槽这道题一看就是个构造题。挺难的。我开始觉得自己找到了方法,后来被队长叉掉了。难就难在很难想到构造的方法。但是想到了就很简单了。场上不少人过掉了,但我不会。赛后群里讨论我的想法被发现是个假算法,其他人也都不太会。完了看看官方原创 2020-07-11 22:59:11 · 429 阅读 · 0 评论 -
洛谷P1892[BOI2003]团伙:变种并查集
洛谷P1892题解题面链接题解AC代码结果题面链接https://www.luogu.com.cn/problem/P1892题解暴力:我首先想到的是邻接矩阵的乘法:把二次的敌人矩阵并入朋友矩阵,然后求出ans(n,n)=∑i=1nfriend(n,n)i ans(n,n)=\sum_{i=1}^{n} friend(n,n)^i ans(n,n)=i=1∑nfriend(n,n)i这个ans矩阵就是所有的朋友关系邻接矩阵了。然后邻接矩阵上跑个连通分量就完了。这样n次矩阵乘法复杂度原创 2020-05-16 15:26:54 · 207 阅读 · 0 评论 -
哈夫曼算法和它的严格证明
哈夫曼算法最优哈夫曼树是啥算法步骤简介复杂度算法正确性证明最优哈夫曼树是啥有篇文章(字符串),想把它加密成01串。所以要给每个字符映射一个01串代表它,而且一个字符的01串不能是另一个的前缀,否则将出现二义性。所以可以把一颗二叉树的叶子节点看成字符,向左走和向右走分别为0和1,这样构造映射到的01串就不会有二义性,这个树就是哈夫曼树。为了使得01串总长度最小,就要构造最优哈夫曼树。显然每个字符的01串长度是字符节点的深度(到根节点经过的变数),所以使得len=∑cnti∗deepi,i∈σlen=\su原创 2020-05-16 13:49:54 · 2850 阅读 · 1 评论 -
矩阵的逆的求法
矩阵的逆求法强行解线性方程法初等变换法伴随矩阵法逆的求法很多,下面是几种比较常见的。强行解线性方程法把逆矩阵的定义写出来[a11a12⋯a1na21a22⋯a2n⋯⋯⋯⋯an1an2⋯ann][x11x12⋯x1nx21x22⋯x2n⋯⋯⋯⋯xn1xn2⋯xnn]=[10⋯001⋯0⋯⋯⋯⋯00⋯1]\left[\begin{array}{cccc}a_{11} & a_{12...原创 2020-04-26 17:49:57 · 2458 阅读 · 0 评论 -
矩阵行列式求法
矩阵的行列式求法拉普拉斯展开交错和想办法变成上三角矩阵经典高斯消元法LU分解行列式求法很多,下面是比较常见的几种。矩阵A的行列式记成det(A)det(A)det(A).拉普拉斯展开根据行列式的代数余子式定义,矩阵按某行或某列展开:det(A)=∑j=1n(−1)i+jaijdet(Aij)=∑i=1n(−1)i+jaijdet(Aij)\operatorname{det}(A)=\s...原创 2020-04-26 17:00:40 · 8085 阅读 · 0 评论 -
AVL树的树高上下界极清晰推导
AVL树的树高上下界推导定义与设定最小树高最大树高通项公式定义与设定树上某点的高度是这个点到它子树上叶子节点所经过的最大边数,树的高度定义为根节点的高度。以下的思路均是设树高为h,求树的最大(树高下界)和最小叶子数(树高上界)。最小树高当树高为h是,最大点数当然是把能填的都填满,成满二叉树。这样点数n=2h+1−1n=2^{h+1}-1n=2h+1−1导出h就是h=log2(n+1)−1...原创 2020-04-26 12:16:19 · 3774 阅读 · 1 评论 -
预排序的优势分析
预排序的优势分析预排序后二分查找的总运算次数不排序查找的总运算次数比较证明以下均设xxx为需要查找的数的个数。预排序后二分查找的总运算次数最坏的情况是T1=nlog2n+xlog2nT_1=nlog_2n+xlog_2nT1=nlog2n+xlog2n不排序查找的总运算次数最坏的情况是T2=xnT_2=xnT2=xn比较把n看做常数,当T1<T2T_1<T_2...原创 2020-04-25 22:27:36 · 548 阅读 · 0 评论 -
k-means,KNN,二分斐波那契查找
k-means类聚与KNN中的top-k问题,以及二分查找与斐波那契查找的比较k-means类聚算法k-means算法思想代码KNN算法二分与斐波那契查找比较如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图...原创 2020-04-19 20:28:42 · 321 阅读 · 0 评论