最近线性代数学了行化简算法解矩阵方程,老师布置课后思考题要我们用代码实现解线性方程组QwQ。所以今天就让我们一同学习一些高斯消元和约旦消元两种解线性方程组的方法吧! 线性方程组和增广矩阵 首先,什么是线性方程呢?我们定义形如a1x1+a2x2+……+anxn=b的方程为线性方程,即每个未知数的次数都是一次的方程我们称为线性方程。那什么是线性方程组呢?顾名思义,就是由一个或多个线性方程组成...
这两周的算法实验课,我的代码被老师抨击说太丑了QwQ;所以我决心改变代码风格,Google风格貌似在SYSU挺盛行的,所以今天我们就来简单看一下算法竞赛中可能用到的Google风格的六点C代码规则吧。 对齐与缩进 1.花括号的位置:左花括号不另起一行,右花括号另起一行。 2.位于同一层( { 和 } 之内)的代码进行统一空格数的缩进,一般使用4个空格或者Tab键。 例子如下: 代码块之...
军训终于结束了呀QwQ(翘了两个星期的网络赛(逃)),在程序设计课上刷学校OJ的时候,发现世界上居然还有BFPRT这种神仙算法。什么你也没听过?没事下面我们就通过一道例题来一步一步了解神奇的BFPRT算法。 思考一下 如果给定一个n个数的数组,要你输出数组中第k大数,该怎么做?这时你也许会振臂高呼:“水题!”的确,在n不太大的时候,是有很多方法的,比如: 1.将n个数排序(比如快速排序...
在最近的训练中,遇到了很多与LCA有关的算法。今天就让我们一起来重温一下求解LCA的三种主流算法吧! LCA简介 在求解LCA之前,我们需要先知道什么叫LCA。LCA(Least Common Ancestors),即最近公共祖先,是指在有根树或者DAG中,某两个结点u和v最近的公共祖先。 觉得很迷?没问题,下面我们来通过一个例子来理解一下LCA的内涵,我们首先有一颗可爱的树(特别感谢大...
最近刚刚打完ACM的校队选拔赛,最后幸运女神眷顾,压线进了校队[做梦笑醒的说]。在这段时间的集训中,新学习了很多很有意思的算法,今天就让我们一起来学习回文串题目的大杀器——回文树吧! 思考一下 现在我们提出一个问题: 假如给你一个长度为 n 的字符串 S (n≤1e5),需要你求解本质不同的回文串的数量及各自的出现次数是多少(不包括空串)。[本质不同的字符串通俗来说就是长的不一样的字符串...