摘要: 矩阵快速幂+斐波那契 一、矩阵乘法 矩阵乘法也就是AXB=A第I行分别与B的第J列的对应元素依次相乘: \[\begin{bmatrix} a&c\\ b&d \end{bmatrix} \times \begin{bmatrix} e&g\\ f&h \end{bmatrix} = \begin{ 阅读全文
posted @ 2021-03-28 10:35 RuanCat 阅读(217) 评论(0) 推荐(0)
摘要: 存图的方法 1.邻接矩阵存图 利用数组来模拟各个点之间的关系:mp[a][b]=v a到b的权值是v 如图(无向图): mp 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 0 3 0 2 1 2 0 3 0 1 0 0 3 0 0 1 0 2 2 4 0 2 0 2 0 0 5 0 0 阅读全文
posted @ 2021-03-16 22:47 RuanCat 阅读(321) 评论(0) 推荐(0)
摘要: 搜索 在我们了解了递归之后就可以拿来做一些事♂情♂,比如走迷宫问题,那么这个时候我们就要用到搜索算法。 dfs 记忆化 bfs 情况一(找有几条出路): 我们平时走迷宫容易见到的策略是:走一条路走到底并放线做标记,如果碰到墙壁就把线收回到上一个路口。 这样就引出了dfs的思想:穷尽每一步出现的所有方 阅读全文
posted @ 2021-03-16 00:31 RuanCat 阅读(120) 评论(0) 推荐(0)
摘要: 差分数组 传送门:前缀和 ​ 在学了前缀和之后如果想要改变前缀和中的数组会变得很麻烦,每次都要拆开来重新求和,那么有没有什么办法来优化这一操作过程呢。 我们就引入了差分数组:b[i]=a[i]-a[i-1],即代表:现在这个数字与前一个数字的差值. 可以看到这个表格: 位置 0 1 2 3 4 5 阅读全文
posted @ 2021-03-15 15:22 RuanCat 阅读(119) 评论(0) 推荐(0)
摘要: 前缀和 ​ 我们在学习算法的过程中,总是会遇到一些查询综合的问题,若是遇到一次查询,直接for循环跑完得了,复杂度是O(n),但要是遇到多次区间的总和查询,比如n次查询m个区间,复杂度蹭蹭蹭的就上去了O(n+m)。 ​ 那么这个时候我们要想办法优化它,那么就有前缀和这个东西了。 \[ \sum_{i 阅读全文
posted @ 2021-03-15 14:37 RuanCat 阅读(66) 评论(0) 推荐(0)
摘要: 线段树+cf1478E 传送门 (先贴代码,细节以后补充QAQ) #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long long using namespace std; 阅读全文
posted @ 2021-02-10 12:04 RuanCat 阅读(68) 评论(0) 推荐(0)
摘要: B - The Great Hero ​ 描述的勇士有 X 攻击力 Y 的生命值,并且每次和怪物战斗都会损失 Y-a[i]的生命值。我们不如先把杀死所有怪物要损伤的生命值算出来,然后再依次恢复到杀第x个怪物的前一刀,看此时的英雄是不是还活着的,是的话就输出"YES"否则输出"NO" 代码: #inc 阅读全文
posted @ 2021-02-08 22:13 RuanCat 阅读(66) 评论(0) 推荐(0)