2026年8月18日

矩阵快速幂

摘要: 矩阵快速幂 快速幂: 快速计算一个数的的几次方,例如 2^75, 75 = (1001011),只需要计算2^64 * 2^8 * 2^2 * 2^1 代码: long long fast_power(int a,int b,int mod){ long long ans = 1; ans %= m 阅读全文

posted @ 2026-08-18 16:28 Sean2299 阅读(4) 评论(0) 推荐(0)

2026年8月14日

线段树(SegmentTree)

摘要: 线段树 作用: 支持对一个数组进行高效的查询和修改 时间复杂度: 建树O(n) 查询和修改O(logn) 代码: #include<iostream> using namespace std; #define int long long #define endl '\n' // SegmentTre 阅读全文

posted @ 2026-08-14 09:35 Sean2299 阅读(4) 评论(0) 推荐(0)

2026年5月29日

Dijkstar算法

摘要: Dijkstar算法 用途:解决最短路径问题 实现方法:1.普通堆(适合稀疏图,写法简单)2.反向索引堆优化(适合稠密图,有点麻烦) 代码实现: //普通堆 #include<bits/stdc++.h> using namespace std; //比较器,用来构建小根堆 struct cmp{ 阅读全文

posted @ 2026-05-29 11:04 Sean2299 阅读(13) 评论(0) 推荐(0)

2026年5月5日

最小生成树

摘要: 最小生成树 1)概念: 在一个无向带权图中,可以联通所有结点并且权值最小的路径就是最小生成树 2)实现算法: 2.1)Kruskal: 将所有边按照权值从大到小排序,然后利用并查集,判断每一条的边的的两个结点是否在同一集合中,不在就合并,并且加上该条边的权值,在就跳过,最后将所有边都处理完就可以得到 阅读全文

posted @ 2026-05-05 21:17 Sean2299 阅读(10) 评论(0) 推荐(0)

2026年5月1日

拓扑排序

摘要: 拓扑排序 1)解决依赖关系的问题 例如:一个人需要上n门课,但是上a课之前要先上b课,上b课之前要先上c课,求上课的顺序。可以将上述关系抽象为一个有向图,c -> b, b -> a,并将每一个结点的入边数量用一个入度表存起来,a:1,b:1,c:0 入度为零的就是可以直接上的课,先输出c,然后以c 阅读全文

posted @ 2026-05-01 14:45 Sean2299 阅读(9) 评论(0) 推荐(0)

基础建图

摘要: 基础建图 1)竞赛一边使用邻接矩阵,邻接表,和链式前向星法建图 1.1)邻接矩阵: 用一个二维数组来表示图,下标表示结点,例如:a[3][4] = 1;表示有一条 3 -> 4 的边,如果有权值,则将1替换为权值 代码: const int MAX = 100; vector<vector<int> 阅读全文

posted @ 2026-05-01 14:30 Sean2299 阅读(11) 评论(0) 推荐(0)

并查集

摘要: 并查集 1)概念:处理不相交集合合并及查询问题的树型数据结构 2)基本功能:查找(find),合并(union) 3)代码实现: #include<iostream> using namespace std; //并查集优化:扁平化(路径压缩),小挂大 const int MAXN = 100000 阅读全文

posted @ 2026-05-01 14:00 Sean2299 阅读(10) 评论(0) 推荐(0)

2026年4月30日

写了个贪吃蛇

摘要: 一个简单的在终端运行的贪吃蛇 效果如下: 代码: #include<iostream> #include<conio.h> #include<windows.h> #include<random> #include<ctime> #include<chrono> #include<sstream> 阅读全文

posted @ 2026-04-30 21:49 Sean2299 阅读(15) 评论(0) 推荐(0)

2026年4月23日

最大公约数和同余原理

摘要: 最大公约数和同余原理 1)辗转相除法求最大公约数: 本质上利用递归思想,设有两个数 a 和 b (a > b),求a 与 b 的最大公约数可以先进行 a % b = res1,res1 一定小于b, 这时让 a = b, b = res1;再次让 a % b = res2, a = b; b = r 阅读全文

posted @ 2026-04-23 18:11 Sean2299 阅读(16) 评论(0) 推荐(0)

2026年4月17日

异或运算

摘要: 异或运算 1)基本性质: n ^ 0 = n; n ^ n = 0; //交换律 a ^ b = b ^ a; //结合律 (a ^ b) ^ c = (a ^ c) ^ b; //在对两个二进制数进行异或运算时,可以将异或看作不进位相加 //例如:101101 ^ 010111 = 111010 阅读全文

posted @ 2026-04-17 09:12 Sean2299 阅读(14) 评论(0) 推荐(0)

导航