摘要: 31.1-1 证明:若\(a > b > 0\),\(c = a + b\),则\(c \bmod a = b\)。 设\(c \bmod a = x\),则\(c = ka + x (k \in \mathbb{Z}) = a + b\). 当\(k = 1\)时: \(c = a + x = a 阅读全文
posted @ 2024-10-09 19:47 dbywsc 阅读(36) 评论(0) 推荐(0)
摘要: 前言 关于这个算法的前置知识快速幂和矩阵可以点击链接看我以前的博客 问题 给定\(n \times n\)矩阵\(A\),求\(A^k\) 算法思路 顾名思义,矩阵快速幂就是矩阵乘法 + 快速幂 (这里就不再赘述快速幂的原理,不熟悉的可以去看我以前的博客) 要想实现这个算法,我们首先需要先实现矩阵乘 阅读全文
posted @ 2023-12-10 12:20 dbywsc 阅读(65) 评论(0) 推荐(0)
摘要: 声明: 本文并没有专门研究矩阵,而是为后面打算写的矩阵快速幂以及和矩阵相关的部分题目提供用来参考的粗浅概念。 另外,本文的相关内容大部分出自《算法导论》第八部分的附录D.1,在书中,我们通过做给出的一些练习题来得出一些矩阵的性质,因此在本文中也将会给出这些思考题的解答过程。 1.矩阵的概念 矩阵是矩 阅读全文
posted @ 2023-12-10 08:17 dbywsc 阅读(164) 评论(0) 推荐(0)
摘要: 前言 学习这个算法看了这个视频,讲的很好! 问题 要想快速的求出\(a^n(n \in N^+)\)有什么办法呢? 前置知识 1. 按权展开 对于一个十进制数,我们可以将它拆分成若干个2的幂的和,这样就可以将它表现为二进制数,例如: \(166 = 128 + 32 + 4 + 2 = 2^{7} 阅读全文
posted @ 2023-12-09 13:56 dbywsc 阅读(65) 评论(0) 推荐(0)
摘要: 学习这个算法的时候看了这位大佬的题解 背景 最近遇到一个问题,需要判断大量的数是否是素数,暴力做法会TLE,所以在寻找解决办法的时候了解了欧拉筛法(线性筛法) 代码 这里以洛谷P3383为例 #include <iostream> #include <cstring> using namespace 阅读全文
posted @ 2023-12-09 13:55 dbywsc 阅读(64) 评论(0) 推荐(0)