模板
fadtes
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查并集 模板
#include <iostream> using namespace std; const int maxn=1e4+4; int f[maxn]; int find(int x) { while(x!=f[x]) x=f[x]=f[f[x]]; //循环版本的路径压缩 return x; } int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { f[i]=i; } for(in原创 2020-10-14 00:08:22 · 166 阅读 · 0 评论 -
乘法逆元 模板
说明 a*x≡1(mod b),且a与b互质,x为a的逆元 对于 a/b(mod p) ,可以求b在mod p 下的逆元,之后 *a(mod p),为原分数的值 常用于大数除法需要取模的情况 扩展欧几里得算法 扩展欧几里得算法是求整数x、y 使得 ax+by=1 单点查找素数快,在a与p互质而p不是质数也可以使用 #include <iostream> using namespace std; typedef long long ll; void Exgcd(ll a,ll b,ll &原创 2020-10-14 23:50:24 · 356 阅读 · 1 评论 -
最小生成树 模板
Kruskal算法 将边的权值从小到大排序,依次取边,需要该边上的点是否已经连通(查并集)。 适用稀疏图,边少点多。 #include <iostream> #include <algorithm> using namespace std; const int maxn=1e4+4; const int maxm=1e6+6; int n,m; int f[maxn]; int find(int x) { while(x!=f[x]) x=f[x]=f[f[x]]; ret原创 2020-10-14 19:25:58 · 149 阅读 · 1 评论 -
快速幂 模板
#include <iostream> using namespace std; typedef long long ll; int main() { //求b^p%k ll b,p,k; cin>>b>>p>>k; cout<<b<<"^"<<p<<" mod "<<k<<"="; ll ans=1,base=b; while(p) { if(p&1)原创 2020-10-14 00:38:59 · 109 阅读 · 0 评论
分享