摘要: 参考 二分查找 返回第一个大于等于x的位置 返回第一个大于x的位置 可以看到, 和`lower_bound`的差别就是一个等于 但是,如果一个数组是降序的呢??? 返回第一个小于等于x的位置 返回第一个小于x的位置 迭代器 `auto for(auto i : v)` vector.insert() 阅读全文
posted @ 2019-12-21 09:55 hezongdnf 阅读(161) 评论(0) 推荐(0)
摘要: 参考 比较字典序 string 重载了运算符,可以直接比较大小 char 返回s1 s2 字符串拼接 string 可以直接使用+拼接,也可以使用append函数 char `strncat(s1,s2,len)` 字符串查找 char 函数用于判断字符串str2是否是str1的子串。如果是,则该函 阅读全文
posted @ 2019-12-21 09:48 hezongdnf 阅读(256) 评论(0) 推荐(0)
摘要: xor 异或的数学符号为“⊕”,计算机符号为“xor” 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 相互性 a ^ b = c 那么 a ^ c = b, b ^ c = a 异或和 从0开始每4个数的异或和为0 y (x ^ y) 阅读全文
posted @ 2019-12-15 21:45 hezongdnf 阅读(501) 评论(0) 推荐(0)
摘要: SPFA Shortest Path Faster Algorithm 最短路径最快算法 算法思想 SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。 阅读全文
posted @ 2019-12-02 19:34 hezongdnf 阅读(340) 评论(0) 推荐(0)
摘要: Bellman Ford 贝尔曼 福特 算法思想 贝尔曼 福特算法(英语:Bellman–Ford algorithm),求解单源最短路径问题的一种算法,由理查德·贝尔曼 和 莱斯特·福特 创立的。它的原理是对图进行次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实 阅读全文
posted @ 2019-12-02 19:15 hezongdnf 阅读(341) 评论(0) 推荐(0)
摘要: 最小费用最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 输入格式 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含四个正整数ui、vi、wi、fi, 阅读全文
posted @ 2019-11-30 22:12 hezongdnf 阅读(162) 评论(0) 推荐(0)
摘要: Problem Description "P4897" 给定一个n个点m条边的无向连通图,多次询问两点之间的最小割 两点间的最小割是这样定义的:原图的每条边有一个割断它的代价,你需要用最小的代价使得这两个点不连通 Accepted code 阅读全文
posted @ 2019-11-30 13:37 hezongdnf 阅读(124) 评论(0) 推荐(0)
摘要: 最大流 网络流图里,源点流出的量,等于汇点流入的量,除源汇外的任何点,其流入量之和等于流出量之和 残余网络 在一个网络流图上,找到一条源到汇的路径(即找到了一个流量)后,对路径上所有的边,其容量都减去此次找到的流量,对路径上所有的边,都添加一条反向边,其容量也等于此次找到的流量,这样得到的新图,就称 阅读全文
posted @ 2019-11-29 21:52 hezongdnf 阅读(191) 评论(0) 推荐(0)
摘要: 有向图的强连通分量 强连通分量:在有向图G中,如果两个顶点vi,vj间有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。 dfn在代表时间戳,而low代表该点可以到达的点的最小dfn值,当low等于dfn的时候,就说明找到了 阅读全文
posted @ 2019-11-24 11:14 hezongdnf 阅读(232) 评论(0) 推荐(0)
摘要: Kuhn-Munkres算法 KM算法,求完备匹配下的最大权匹配,时间复杂度O(\(n^3\)) 所谓的完备匹配就是在二部图中,x点集中的所有点都有对应的匹配 且 y点集中所有的点都有对应的匹配 ,则称该匹配为完备匹配 算法思想 (1)初始化可行顶标的值; (2)用匈牙利算法寻找完备匹配; (3)若 阅读全文
posted @ 2019-11-21 10:37 hezongdnf 阅读(445) 评论(0) 推荐(0)
摘要: 拓扑排序 在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。 先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。 一直做改操作,直到所有的节点都被分离出来。 如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无 阅读全文
posted @ 2019-11-17 09:41 hezongdnf 阅读(120) 评论(0) 推荐(0)
摘要: 匈牙利算法 求二分图的最大匹配,也就是求最多有多少对$(x,y)$匹配,时间复杂度$O(n^2)$ 算法思想 对于每一个x,寻找一个y匹配,如果找到的y匹配已经有匹配了,给y的匹配换一个y(有点绕) 模板 int n,m,e; int a[maxn][maxn]; bool vis[maxn]; / 阅读全文
posted @ 2019-11-12 10:52 hezongdnf 阅读(162) 评论(0) 推荐(0)
摘要: 离线Tarjan 算法思想 离线处理,先记录需要找的点 链式前向星模板 c++ include using namespace std; define mem(a,b) memset(a,b,sizeof(a)) define cin(a) scanf("%d",&a) define pii pai 阅读全文
posted @ 2019-11-10 20:36 hezongdnf 阅读(154) 评论(0) 推荐(0)