自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 树上启发式合并

这是一种解决树上问题的利器,是优雅的暴力引入一个问题:给定一棵树,求解下式∑i=1n∑j=i+1n[ai⨁aj=alca(i,j)](i⨁j)\sum_{i=1}^n\sum_{j=i+1}^n [a_i\bigoplus a_j=a_{lca(i,j)}](i\bigoplus j)i=1∑n​j=i+1∑n​[ai​⨁aj​=alca(i,j)​](i⨁j)问题分析:枚举作为 lcalcalca 的 uuu ,那么 lca(i,j)=ulca(i,j)=ulca(i,j)=u 的点对 (

2021-11-01 19:06:12 230

原创 图论之差分约束系统

差分约束系统学习笔记算法学习模型模型: n 个变量 x1,x2,……,xnx_1,x_2,……,x_nx1​,x2​,……,xn​,其中有形如:xi−xj<=dx_i-x_j<=dxi​−xj​<=d 的若干不等式组关系,求解一组可行解 xix_ixi​ 。方法建图: 对于 xi−xj<=dx_i-x_j<=dxi​−xj​<=d 的一条限制条件,建一条从 jjj 到 iii ,距离为 ddd 的边。求解可行解: 以任意点为起点(假设以 1 为起点),

2021-10-27 18:01:05 275 1

原创 线段树套 treap / 树状数组套 treap

线段树套无旋 treap前言线段树套 treap 是最基础的树套树,没有之一 。treap 可以实现的功能,例如:第 k 大,比 val 小的数的个数等,使用线段树套 treap 之后,都可以实现在区间中找第 k 大,在区间中找比 val 小的数的个数。并且其 支持单点修改。算法学习思路: 非常简单的一个思路:假设线段树维护区间 [l,r][l,r][l,r] ,那么其就有对应一个 treaptreaptreap 维护区间 [l,r][l,r][l,r] 之间的所有点。空间复杂度:nlognn

2021-10-08 19:06:27 284

原创 无旋treap学习

无旋 treap 学习原理前言treap=tree+heaptreap=tree+heaptreap=tree+heap,其在 BST (二叉搜索树) 的基础上,多添加了一个参数 key ,通过维护 key 的二叉堆性质,来使得 treaptreaptreap 的期望高度达到 lognlognlogn核心: splitsplitsplit 和 mergemergemerge 。通过 splitsplitsplit 将一棵 treaptreaptreap 拆分成一棵值均 <=val<=v

2021-10-06 23:08:35 143

原创 树状数组套主席树

树状数组套主席树前言静态查询区间第 k 小:主席树即可动态查询区间第 k 小:即边单点修改边查询区间第 k 小 。主席树查询区间第 k 小是基于前缀思想的,而树状数组可以很好的解决单点修改的前缀查询的问题。如何将这两者一起套用就是这个部分要学的。算法学习单点修改: 让树状数组的 lognlognlogn 棵主席树单点修改,时间复杂度:O(n2)O(n^2)O(n2)区间查询第 k 大: 区间 [l,r][l,r][l,r] 是由树状数组中的 lognlognlogn 棵主席树做差相减构成的

2021-10-05 20:34:44 155

原创 期望与期望dp/概率dp

关于期望期望的两个公式:通用公式: ∑pi×vi\sum p_i\times v_i∑pi​×vi​,pi 为概率,vi 为得分等概率: ∑vi/cnt\sum v_i/cnt∑vi​/cnt,vi 为得分,cnt 为总选择。简单求期望例题1:期望独立单独计算题目描述: 有 n 道题,每道题有 ai 个答案。对于第 i 道题,小明随意的蒙了一个 [1,ai][1,a_i][1,ai​] 的答案,即每道题都有 1/ai1/a_i1/ai​ 的概率对。可是小明抄错了,不小心把第 i 道题的答案

2021-09-16 16:17:04 535

原创 分治算法之点分治

点分治算法的学习算法原理解决什么样的问题: 树上静态计数,取最值等目的。原理: 在树上进行分治,通过以重心为根,将一棵树变成若干棵子树,那么问题就变成了:计算不同子树之间的答案,同一子树之中的答案。 后者可以递归到子树,继续分治求解。树的重心定义: 以重心为根的所有的子树中 size 的最大值最小。(都不超过n/2)根据定义写出以下代码void getroot(int u,int fa){//找重心,maxsize[u]为 u 的子树的最大size size[u]=1; for(in

2021-09-10 15:24:51 234

原创 dfs序+欧拉序+重链剖分

dfs序dfs序学习构造: dfsdfsdfs 序是通过按照 dfsdfsdfs 时访问结点的先后顺序产生的序,一般维护两个数组 in,outin,outin,out ,用 id 表示时间戳。每次新访问一个新结点 in[u]=++idin[u]=++idin[u]=++id,访问结束后 out[u]=idout[u]=idout[u]=id。用处: dfsdfsdfs 序可以把树上问题转化为区间问题,然后用一些线段树,树状数组之类的数据结构维护。性质: 若 vvv 是 uuu 的子树,则 v 的时间

2021-09-05 16:56:12 206

原创 动态规划之悬线法

前言悬线法是一种很好的,可以解决下面这类题型从矩阵中找到一个满足某条件的最大矩阵算法思路悬线如下:状态表示: 定义 h[i][j]h[i][j]h[i][j] 为从 (i,j)(i,j)(i,j) 往下的一条悬线最长长度,定义 l[i][j],r[i][j]l[i][j],r[i][j]l[i][j],r[i][j] 为从 (i,j)(i,j)(i,j) 往下的一条悬线能往左/右延申到的左右边界。状态转移: 不同的题有不同的转移方式。例题1:最大只包含1的矩形例题链接题目描述: 一个

2021-08-22 02:04:48 167

原创 动态规划之单调队列/单调栈优化

前言单调队列优化dp是最常用的优化dp方程的方式之一通常是通过将 可转移状态 存入一个单调队列中,不断维护它,来进行状态转移。并且这个 可转移状态 是 连续且单调的 。原理: 如果一个选手比你小,还比你强,你就可以退役了往往可以通过朴素的dp找到一种方法,再根据单调队列优化。例如:O(n2) - O(kn)【注意】这里的队列是指队尾只能出,队首即可以出又可以入的队列。如果队尾不需要出只需要入,那么也可以写出单调栈的形式。例题汇总单调栈例题1题目描述: 给定 n 个数 ai,1&lt

2021-08-20 12:31:12 494

原创 杂项之尺取法与双指针

尺取法的学习基本知识定义: 反复推进区间的开头和末尾,来求满足条件的最小区间的方法被称为尺取法。用法: 故名思义,尺取法的有两个端点,一个代表头str,一个代表尾end。与二分法很相像,二分法是求满足条件的最小值,而尺取法是求满足条件的最小区间。其题目通常要满足:连续(在一个区间上),单调(区间越大越任意满足条件)。其经常用于求:满足条件的最小区间,最大值与最小值的差的最小值(排序转化)。一般思路是:枚举头str从1-n,去得到满足条件的最小end,然后处理答案。很显然过程中end递增,则时间复杂度

2021-08-01 11:47:12 132

原创 线性代数之线性基

线性基的学习定义对于每个序列 {a1,a2,a3……an},其都有一个线性基 {b1,b2,b3……bm},使得线性基中的元素通过异或可以表示出原序列的所有元素,但是线性基元素数量在log级别算法学习性质: 线性基中的元素二进制下最高位1在第 i 位的最多只有一个。那么很显然线性基元素数量在log级别性质证明: 考虑将元素逐个加入的思路,设此时需要加入的元素为 x ,并设其二进制下最高位1在第 i 位,若线性基中已经有二进制下最高位1在第 i 位的元素 d[i] ,则其可以通过异或 d[i]

2021-07-29 17:09:20 972 1

原创 类欧几里得学习

类欧几里得算法学习模型类欧几里得是用来快速的求以下式子:f(a,b,c,n)=∑i=0n[ai+bc]f(a,b,c,n)=\sum_{i=0}^n [\frac{ai+b}{c}]f(a,b,c,n)=∑i=0n​[cai+b​]g(a,b,c,n)=∑i=0ni×[ai+bc]g(a,b,c,n)=\sum_{i=0}^n i\times[\frac{ai+b}{c}]g(a,b,c,n)=∑i=0n​i×[cai+b​]h(a,b,c,n)=∑i=0n[ai+bc]2h(a,b,c,n)=

2021-07-21 12:33:18 134

原创 拉格朗日插值定理

拉格朗日插值学习定理模型: 已知 n+1 个点 xix_ixi​ 对于的f(xi)f(x_i)f(xi​),试去确定函数f(x)f(x)f(x),并求出f(k)f(k)f(k) 。直接结论: f(x)=∑i=0nf(xi)×∏j=0,j!=inx−xjxi−xjf(x)=\sum_{i=0}^nf(x_i)\times\prod_{j=0,j!=i}^n\frac{x-x_j}{x_i-x_j}f(x)=∑i=0n​f(xi​)×∏j=0,j!=in​xi​−xj​x−xj​​简单证明: ∏j=1,j

2021-06-14 18:25:33 1417

原创 博弈论汇总

组合游戏什么是组合游戏:组合游戏需要有以下特点:1.题目描述一般为A,B两人做游戏2.AB交替进行某种游戏规则的操作,每次操作选手可以在有限的操作集合中选取一种。3.游戏的任意一种局面的合法操作集合只与这个局面本身有关,不取决与其他因素,如选手,以前的操作4.如果当前选手无法进行合法的操作时,该选手判负N/P必胜点N:处于该点的选手必胜。必败点P:处于该点的选手必败组合游戏有向图模型任意一种组合游戏都能转化为一种有向图。组合游戏的每种状态都对应该有向图中的某个点。该图中没有出度

2021-06-08 09:23:09 237

原创 二分,三分模板

二分答案模型: 题目要求满足单调性,即答案越大(越小),要求更容易满足。通常会问你满足题目要求的最大最小值。二分思路: 假设答案越大越容易满足要求,求满足要求的最小值。从答案所在左右边界开始,每次都取中间值判断是否满足题目要求。若不满足,则答案一定在中间值到右边界之间;若满足,则答案一定在左边界到中间值之间。整数模板:求满足题目要求的最小整数int main() { int str=0,end=1e9; while(str<=end) { int mid=(str+end)/2;

2021-05-25 08:51:06 81

原创 尺取与分数规划

问题模型给定一组aia_iai​和bib_ibi​,求一组wi∈0,1w_i\in{0,1}wi​∈0,1,最大/小化下式∑i=1nai×wi∑i=1nbi×wi\frac{\sum_{i=1}^na_i \times w_i}{\sum_{i=1}^nb_i \times w_i}∑i=1n​bi​×wi​∑i=1n​ai​×wi​​算法二分法二分一个mid∑i=1nai×wi∑i=1nbi×wi\frac{\sum_{i=1}^na_i \times w_i}{\sum_{i=1}^nb_i

2021-05-16 00:51:34 84

原创 莫比乌斯反演从零开始(数学不好的来看这个)

困扰了我半年的莫比乌斯,今天终于有了进展。本人是数论小白,数学基础不好,对数学不敏感,对数学公式推导转化头疼,所以才学的慢,下面我以一个数学不好的人的视角学习。为了解决哪些问题?∑\sum∑∑\sum∑f(x)这样的式子。比如∑i=1n∑j=1ngcd(i,j)\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)∑i=1n​∑j=1n​gcd(i,j)之类的莫比乌斯函数u(n)={1n=1(−1)kn无平方数因子,k为不同因子个数0n有大于1的平方数因子u(n) = \begin{ca

2021-05-07 18:59:27 216

原创 莫队分块(带修,不带修,回滚)

个人理解莫队是一种优雅的暴力,是著名的离线算法之一。一般用来解决区间查询问题,利用了区间范围的特点,将查询区间的顺序排序,将时间复杂度降至O(nsqrt(n))。这里的区间查询可查询非常多的东西算法分析首先我们引入一道题:例题题目描述:n个数,m个询问,每次询问查询 [l,r] 区间,判断区间内是否出现重复数字,n,m<=50000。暴力算法:for,vis,cnt=r-l+1,O(nm)一个思维:假设第一个查询区间为 [3,7] ,设 l = 3,r = 7,第二个查询区间为 [2,

2021-04-15 20:14:05 272

原创 各种类型的线段覆盖问题

问题1问题描述:1 - L的一维区间上,有n条线段,线段两端点分别为li,ri。求覆盖全部的最小线段条数。问题分析:贪心。贪心策略:按 l 小 r 大的排序方式排序,得到第一条从 l1_11​=1 出发且 r1_11​最大的线段,则第二条线段的 l2_22​ 需要 <= r1_11​,且r2_22​尽可能大。同理第三条线段的 l3_33​<=r2_22​且r3_33​尽可能大。以此类推,很容易感觉到,该贪心策略已是最优策略。问题2问题描述:1 - L的一维区间上,有n条线段,线段两

2021-04-04 10:14:01 1259

原创 组合数学(排列组合,容斥原理,数论定理)

一.排列组合1.加法,乘法原理: S=∑ai\sum{ai}∑ai,S=∏ai\prod{ai}∏ai2.排列: 从n个不同元素中任选m个,组成一个排列,有AnmA_n^mAnm​种可能3.组合: 从n个不同元素中任选m个,组成一个组合,有CnmC_n^mCnm​种可能4.二项式定理:(a+b)n=∑i=0n\sum_{i=0}^n∑i=0n​ an-ibi

2021-04-03 17:06:56 771

原创 数位dp(从小白到大白)

还没写完,等等我物理作业补一下经典问题模型给定一个闭区间 [L,R],求区间中满足某条件的数的个数例题题目大意:给定一个区间 ,求其中,将数位拆分后,相邻两个数字相差至少为2的数的个数。除了最后部分的记忆化搜索和代码实现举了个该例题的例子,其他分析部分均没有用到该例子,均为统一模板思维问题分析首先,利用差分的思想,我们把求区间 [L,R] 中满足条件的数的个数看成求区间 [1,R] 中满足条件的数的个数减去区间 [1,L-1] 中满足某条件的个数,即 ansr_rr​ - ansl−

2021-03-23 20:27:58 506

原创 splay从入门到入土

个人理解首先,二叉搜索树有些很好的性质1.中序遍历从小到大2.查找数的理想时间复杂度为O(log2log2log2)二叉搜索树在树较平衡时,时间复杂度O(log2log2log2)在最坏情况下,树退化成一条链,时间复杂度是O(n)treap通过随机化进行降低复杂度而splay则通过旋转降低复杂度算法学习旋转旋转的目的旋转x就是将x往上提,直到提到根结点不知道为什么,提着提着,这个树就变平衡了一些并且旋转之后,前文提到的两个性质仍然存在单次旋转即单旋分为左旋右旋当x为其父结点的

2021-03-07 02:09:53 137

原创 位运算的一些常识+01tired

前言题目中出现&,|,^ 的问题前置知识&:按位与,都1则1,有0则0|:按位或,有1则1,都0则0^:按位异或,不同为1,相同为0性质归纳性质1:a^b<=a+b性质2:位运算时,每位元素相互独立例题讲解例题1:关于异或例题1**问题描述:**将n个数任意分成若干组,定义每个组的权值为该组所有数的异或和,求最小权值之和问题分析性质:a^b<=a+b因为 a^b<=a+b,所以任意两个数,不分组比分组更优即所有数全在一个组时最优代码如下#

2021-03-01 16:49:07 253

原创 计算几何之旋转卡壳

大佬博客直通车算法目的根据凸包上的边的最远点随着边逆时针转动,一起逆时针转动的性质,使用计算几何的一些方法进行旋转遍历。算法学习例题1:二维平面上有若干个点,求该平面上最远的两个点的距离首先,这两个点一定凸包上。很容易想到个O(n2)的算法,暴力枚举凸包上的每两点即可,想想更好的算法。一个我证明不来的定理:距离某个点最远的点一定在距离某个点最远的边的两端点上所以我们循环找距离每条边上最远的点,求两次dis(边上的端点)即可我们发现,还是O(n2)但是画图我们可以发现,随着逆时针取边,其

2021-02-28 14:20:22 166

原创 计算几何之基础(点积叉积,pick定理)

一.什么是叉积向量的叉积,可以用来判断几何中的点线位置关系,且频繁出现,非常重要叉积 = a x b = x1y2-x2y1二.如何使用1.判断两个向量的位置关系令p1=(x1,y1),p2=(x2,y2)若叉积大于0,则p1逆时针旋转到p2若叉积等于0,则O,p1,p2三点共线若叉积小于0,则p1顺时针选择到p2double check(point p0,point p1,point p2){ return (p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p

2021-02-27 19:00:04 725

原创 计算几何之凸包

大佬博客直通车

2021-02-27 18:33:04 265

原创 树上动态规划的归纳总结

个人理解树上动态规划类比线性动态规划 线性动态规划:该状态由前面一个状态转移而来 树上动态规划:父结点状态由所有子节点状态转移而来其实学会了线性动态规划,树上动态规划自然会的差不多了归纳模式一相邻取与不取问题:树上的相邻结点不能同时取,求取得的最大值设f[u][1],f[u][0]分别表示u取与不取的时候能取得的最大值易知:f[u][1]=sum(f[v][0])+a[u] f[u][0]=sum(max(f[v][1],f[v][0]))例题#include<iostrea

2021-02-25 18:07:44 358

原创 区间动态规划的归纳总结

一.个人理解区间动态规划就是先计算出小区间的权值,大区间由两个已计算好的小区间合并而成,枚举大区间被两个小区间拆分的断点即可求出大区间的最优值。其很明显的至少由两层循环组成,且大部分都是三层循环基本模式如下:for(int i=1;i<=n;i++)f[i][i]=1;for(int len=1;len<=n;len++){ for(int l=1;l<=n;l++){ int r=l+len; if(r>n)break; for(int k=l;k<r

2021-02-25 13:52:33 372

原创 数论之欧拉函数,费马小定理+欧拉定理+拓展欧拉定理

欧拉函数1.基本知识记<=n且和n互质的正整数(包括1)的个数,记作φ(n)公式:φ(n)=∏i=1n\prod_{i=1}^{n}∏i=1n​(1-1/pi)(其中pi为n的质因子)根据定义写出其代码如下:(复杂度O(n1/2))long long eular(int n){ long long ans=n; for(int i=2;i*i<=n;i++){ if(n%i==0){ ans=ans/i*(i-1); //先除再乘防数据爆炸 whil

2020-12-30 21:01:17 584

原创 高斯消元(求解n元一次方程组)

一.高斯消元的基本概念1. 问题:给定一个n元一次方程组,如何判断解的情况,以及求出解?2.方法:高斯消元如果是我们人,我们自然会消元法来消元,通过将某个多元一次方程化为一元一次方程,求出结果。我们定义第i行(第i个方程)为Ri那么消元的过程就相当于以下三种操作:1.交换Ri与Rj2.Ri乘以常数k3.Ri加上(Rj乘以常数k)其实就是线性代数中的初等行变化高斯消元的思路就是化为以下形式的矩阵(首非0元为1的阶梯矩阵)1 a b c0 1 d e0 0 1 g这样就可以倒着

2020-12-29 20:15:11 2980

原创 动态规划之状态压缩(从入门到入土)

一.基本思想动态规划中最难的一类题之一,随随便便拿出一题都是提高+省选-其主要思想是二进制位运算。举个例子:一条街上有n个路灯,路灯只有亮与不亮两种状态。如果去描述这n个路灯的状态呢???用数组描述显然可以,但有没有其他的方法???二进制下的一个整数 k !!!例如:n等于8,k=183,k=10110111(2)那么整数 k 就可以表示第123568个路灯亮,其余路灯不亮其他功能怎么办???比如判第i个灯是否亮,关闭第i个灯,如何关闭多个灯之类的位运算来啦!!!这个表格

2020-12-11 19:55:28 197

原创 AC自动机

一.前言AC自动机是一种字符串匹配的算法,用来将多个模板串t与文本串s匹配。例如:求解文本串中包含了多少个模板串其前置知识是:KMP和字典树二.前置知识字典树1.基本概念字典树是一棵包含所有模板串的26叉树。树的”边权“是字符,从根节点出发到任意点的”距离“,即为某一字符串的前缀。2.建立字典树用next[26]指针来表示每一叉所指向的26子叉用fail存储每个节点的失配情况(不懂没关系)用sum表示这个节点是不是一个单词的结尾,以及相应的个数#include&lt

2020-12-08 18:14:22 225

原创 数组分块(经典根号算法之一)

一.分块的基本知识1.什么是分块?所谓分块,事实上就是一种优雅的暴力,将O(n)的暴力过程变成O(n1/2)的过程。2.分块可以干嘛分块可以实现的操作有:(每个操作的时间复杂度都为O(n1/2)区间修改([l,r]+k)区间查询和(sum(a[i])(l<=i<=r))区间查询最值 (max(a[i])(l<=i<=r)区间查询[l,r]内有多少个数满足:>=<k区间查询[l,r]内,k的前驱后继【注意】要知道,线段树实现第四点和第五点是很难的,

2020-12-03 17:25:56 528

原创 生成树(最小生成树,次小生成树,kruskal重构树)

一.最小生成树1.定义在一个含有n个节点的无向图中,找到一棵含有n个节点的树,且该树边权总和最小2.算法prim,贪心,O(m)3.实现过程1.假设没有边,这n个都为独立的n个点,准备通过边来连接这n个点2.对所有边排序,从最小的边开始选择是否连接3.若边上两点已经间接连接,则continue否则:将其连接,将边权加入sum4.结果:n个点均直接或间接连接,break判断是否间接连接???我们用并查集来写4.代码实现#include<bits/stdc++.h&

2020-11-29 08:43:46 289

原创 2-SAT问题

一.基本介绍模板题1.问题描述有n个bool变量,每个布尔变量都有0,1两种可能给定m条限制,例如(u=0/1)||(v=0/1),或者(u=0/1)&&(v=0/1)求满足限制的一种方案?2.算法解决以图论的形式做将每个点抽象成两个点,表示等于0或者等于1若存在限定:u为x时,v必须为y,则将限定关系建边对于这n个布尔变量:1-n表示等于0,n+1-2n表示等于1tarjan若点u的0与1在同一个强联通分量里,则题意无法满足否则就可满足题意3.那如何输出

2020-11-26 15:58:22 129

原创 强联通分量+割点+割边+双联通分量(tarjan)

一.模板介绍模板题1.定义给定一张有向图,若存在一个点集,该点集内的点可通过路径任意到达其他所有点,则称该点集为一个强联通分量。(一个点也可为一个强联通分量)2.算法tarjan结果:将强联通分量缩成一个点,让一个有环图变成一张无环图#include<bits/stdc++.h>using namespace std;const int N=20005;const int M=1e5+5;struct ppp { int u,v,next;} e[2*M];in

2020-11-26 13:50:49 731

原创 网络流最大流最小费用流

一.问题描述模板题给定一个网络图,及其源点和汇点,和点的连接关系,以及边的容量限制,求出其网络最大流。算法:dinic简单介绍,不具体证明dinic:就是不断的从残余网络中寻找增广路来不断增广流量的算法。效率:为使跑残余网络时少走重复的路,每次用bfs建立分层图。正确性:因为每次增广的时候,当正向边容量减去流量的同时,反向边容量都会加上同样的流量,相当于给程序一次反悔的机会,这样就保证了程序一定会求出maxflow【注意】跟着注释简单理解即可,不理解也没有关系的,只需要当模板记。

2020-11-25 23:24:23 731

原创 二分图最大匹配及最大权匹配

一位大佬的神级解释一.二分图的基本知识1.定义G=(V, E)是一个无向图,若能将V分割成两个互不相关的点集X,Y,且图中每条边连接的两个顶点一个在 X中,另一个在 Y中,则称图G为二分图。2.性质与判定定理:当且仅当无向图G的每一个环的结点数均是偶数时,图G才是一个二分图。如果无环,相当于每的结点数为 0,故也视为二分图。判定方法:dfs23染色法过程:我们把X部的结点颜色设为2,Y部的颜色设为3。从某个未染色的结点u开始跑dfs。把u染为0,枚举u的儿子v。如果v未染色,就染

2020-11-23 18:43:09 1986

原创 矩阵快速幂优化dp

前言线性代数中的矩阵乘法对写编程有帮助,比如矩阵快速幂求斐波那契数列第n项之类的,所以我们要去稍微学习一些相关的运算矩阵乘法的计算运算规则:Cij = sum(Aik * Bkj)对于两个矩阵Aij和Bnm当且仅当j==n时,AB有意义,且结果矩阵为Cim根据运算规则可以写成其代码#include<bits/stdc++.h>using namespace std;int A[10][10],B[10][10],C[10][10];int main(){ int a

2020-11-14 11:06:33 731

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除