会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
chstor
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
10
···
13
下一页
2020年7月6日
数学知识--- 质数、约数、分解质因数
摘要: 质数 大于1的整数中,如果只包含1和它本身这两个约数,就被称为质数,也叫素数 对于一个足够大的整数N,不超过N的质数大约有N/lnN个,即每lnN个数中大约有1个质数 质数的判定 试除法 时间复杂度O(sqrt(n)) bool isprime(int x){ if(x < 2) return 0;
阅读全文
posted @ 2020-07-06 15:26 chstor
阅读(722)
评论(0)
推荐(0)
2020年7月5日
(基础)--- 匈牙利解决二分图的最大匹配
摘要: 转自在线白给大佬 什么是最大匹配? 匹配:在图论中,一个「匹配」是一个边的集合,其中任意两条边都没有公共顶点。 最大匹配:一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。 完美匹配:如果一个图的某个匹配中,所有的顶点都是匹配点,那么它就是一个完美匹配。 交替路:从一个未匹配点出发,依
阅读全文
posted @ 2020-07-05 12:07 chstor
阅读(172)
评论(0)
推荐(0)
(基础)--- 染色法判断二分图
摘要: 二分图的概念 奇数环:由奇数条边形成的一个环 将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图 一定不含有奇数环,可能包含长度为偶数的环, 不一定是连通图 二分图:当且仅当图中不含有奇数环,两个集合内部的内部没有边 染色法 时间复杂度是O(n+m) 代码思路: 染色可以使用1和2区分不同
阅读全文
posted @ 2020-07-05 12:02 chstor
阅读(286)
评论(0)
推荐(0)
2020年7月4日
(基础)--- Kruskal
摘要: Kruskal算法(适用于稀疏图) 1、将所有边按权重从小到大排序 O(mlogn) 2、枚举每条边a,b,权重c O(m) if a,b不连通 将这条边加入集合中 判断连通 使用并查集来判断两个连通块是否连通 #include<iostream> #include<algorithm> using
阅读全文
posted @ 2020-07-04 17:35 chstor
阅读(138)
评论(0)
推荐(0)
(基础)--- Prim
摘要: 朴素版prim算法(适用于稠密图) 时间复杂度:O(n^2) 类比Dijkstra算法:Dijkstra算法是更新到起始点的距离,Prim是更新到集合S的距离 S:当前已经在联通块中的所有点的集合 dist[i] = inf for n 次 t<-S外离S最近的点 st[t] = true 利用t更
阅读全文
posted @ 2020-07-04 17:24 chstor
阅读(149)
评论(0)
推荐(0)
(基础)--- Floyd
摘要: Floyd算法 时间复杂度是O(n^3) 初始化 初始化: for (int i = 1; i <= n; i ++ ) for (int j = 1; j <= n; j ++ ) if (i == j) mp[i][j] = 0; else mp[i][j] = INF; 核心算法 注意:k,i
阅读全文
posted @ 2020-07-04 12:06 chstor
阅读(125)
评论(0)
推荐(0)
(基础)--- SPFA(判负权回路)
摘要: SPFA判断图中是否存在负环 时间复杂度是一般O(m),最坏:(nm) 转载自小呆呆大佬 算法分析:使用spfa解决是否存在负环问题 1、dist 记录当前1到x的最短距离 2、cnt 记录当前最短路的边数,初始每个点到1号点的距离为0,只要它能走n步,即cnt >= n,则表示该图中一定存在负环,
阅读全文
posted @ 2020-07-04 12:03 chstor
阅读(304)
评论(0)
推荐(1)
(基础) --- Bellman-Ford&SPFA
摘要: Bellman_ford算法可以存在负权回路,是因为其循环的次数是有限制的因此最终不会发生死循环; 但是SPFA算法不可以,由于用了队列来存储,只要发生了更新就会不断的入队,因此假如有负权回路请你不要用SPFA否则会死循环。 Bellman-Ford算法 时间复杂度O(nm),n表示点数,m表示边数
阅读全文
posted @ 2020-07-04 11:50 chstor
阅读(150)
评论(0)
推荐(0)
(基础)--- Dijkstra算法(含堆优化版)
摘要: 朴素Dijkstra算法 时间复杂是 O(n^2+m), n 表示点数,m 表示边数 适合稠密图 #include<cstring> #include<iostream> #include<algorithm> #define mm(a,x) memset(a,x,sizeof(a)) #defin
阅读全文
posted @ 2020-07-04 11:26 chstor
阅读(1046)
评论(0)
推荐(0)
2020年7月2日
ACwing(基础)--- 区间合并
摘要: 区间合并 ①按区间左端点排序 ②维护一个基准(st-ed) // 将所有存在交集的区间合并 void merge(vector<PII> &segs) { vector<PII> res; sort(segs.begin(), segs.end()); int st = -2e9, ed = -2e
阅读全文
posted @ 2020-07-02 13:40 chstor
阅读(187)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
10
···
13
下一页
公告