摘要: 本篇博客是【数论专题】系列的第 \(2\) 篇,希望大家多多支持。 埃氏筛 埃氏筛,全称埃拉托斯特尼筛法。 埃氏筛的核心思想是:如果一个数 \(p\) 是质数,那么 \(p\) 的倍数的不是质数,即将所有质数的倍数都标记为合数,不需要标记合数的倍数。 埃氏筛时间复杂度 \(o(n \log \log 阅读全文
posted @ 2025-08-16 11:39 Loyal_Soldier 阅读(27) 评论(0) 推荐(0)
摘要: 快速幂 快速幂可以用 \(O(\log b)\) 的时间复杂度求解 \(a^b \bmod\ p\)。 每次检查当前 \(b\) 二进制下的最后一个为是否为 \(1\),为 \(1\) \(ans\) 就乘上当前的 \(a\)。每次需要将 \(a\) 乘上 \(a\),并将 \(b\) 右移一位。 阅读全文
posted @ 2025-08-13 09:14 Loyal_Soldier 阅读(12) 评论(0) 推荐(0)
摘要: \(ps:\)从7.13开始写的,前面几天可能没那么清晰。 7.7 老师讲了十分简单的搜索剪枝,然后做了些题。 7.8 考了十分简单的搜索考试,T5刚好7.7做过(这居然还是思维题,而且好像暴力能过),秒切,接着切了T1 \(\sim\) T4,不过T1时间复杂度好像有问题。总分 \(100+100 阅读全文
posted @ 2025-07-13 09:29 Loyal_Soldier 阅读(34) 评论(1) 推荐(0)
摘要: 欧拉函数 \(\varphi\) 前置知识: 线性筛(欧拉筛) 欧拉函数的定义 欧拉函数是OI竞赛中十分重要的积性函数,欧拉函数 \(\varphi(n)\) 表示 \(1\sim n\) 中与 \(n\) 互质的数的个数,特别的,\(\varphi(1) = 1\)。 ps:懒得证明欧拉函数的积性 阅读全文
posted @ 2025-06-16 20:22 Loyal_Soldier 阅读(32) 评论(0) 推荐(0)
摘要: 代码 #include<bits/stdc++.h> #define int long long using namespace std; int n,m,r,p; int dep[114514]; int fa[114514]; int son[114514]; int siz[114514]; 阅读全文
posted @ 2025-05-23 20:05 Loyal_Soldier 阅读(22) 评论(3) 推荐(0)
摘要: 倍增 时间复杂度 \(O(n\log n)\)。 代码 #include<bits/stdc++.h> using namespace std; int anc[500010][21];//anc[i][j]表示i节点的2^j级祖先 int n,m,s; int d[500010];//d数组表示当 阅读全文
posted @ 2025-05-23 20:02 Loyal_Soldier 阅读(15) 评论(0) 推荐(0)
摘要: 1 最小生成树的概念 最小生成树(Minimum Spanning Tree,简称MST)指一个联通无向图中包含所有顶点的一棵树(也就是没有环),且该树所有边的边权最小。 例如,对于以下的图: 最小生成树(用红线标记)为: 2 求解最小生成树 最小生成树模板题 最小生成树主要有两种算法:Prim算法 阅读全文
posted @ 2025-04-26 11:49 Loyal_Soldier 阅读(98) 评论(2) 推荐(0)