随笔分类 - acm进阶
摘要:https://blog.csdn.net/qq_35640373/article/details/70168683
阅读全文
摘要:首先接触的就是欧几里得求最大公约数(GCD) 递归的写法: 在扩展欧几里得中,设法求 ax + by = gcd(a, b) 中的一组 x 和 y 的解 当 b = 0 的时候, gcd(a, b) = a,此时的 x = 1, y = 0为其中的一组的解 当 b ≠ 0 的时候 , 设 ax1 +
阅读全文
摘要:大佬的博客:https://blog.csdn.net/creatorx/article/details/71100840 hdu6208
阅读全文
摘要:1 import java.util.*; 2 import java.io.*; 3 import java.lang.String; 4 import java.math.BigDecimal; 5 import java.math.BigInteger; 6 7 public class Main 8 { 9 public static vo...
阅读全文
摘要:欧拉函数φ(N)表示N 的欧拉函数:即小于N且与N互质数 的个数 1.对于素数p, φ(p)=p-1,对于对两个素数p,q φ(pq)=pq-1 2.对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn. φ(N)=N*(1-1/P1)*(1-1/P2)*...*(1-1/Pn
阅读全文
摘要:为了解决字符串匹配问题 给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 模板: KMP求子串出现的次数
阅读全文
摘要:1 //字符串的乘法 2 string multi(string a, string b){ 3 int i, j, arr[200], len = a.length() + b.length(); 4 memset(arr, 0, sizeof arr); 5 reverse(a.begin(), a.end()); 6 reverse(b.begi...
阅读全文
摘要:1 //矩阵间的乘法%m 2 Matrix matrix_mul(Matrix A, Matrix B, long long m) 3 { 4 Matrix ans; 5 6 for (int i = 0; i >= 1; 31 } 32 return ans; 33 }
阅读全文
摘要:逆元:(即是逆元素)逆元素是指一个可以取消另一给定元素运算的元素。 在一个代数系统(S,*)中,存在单位元素e,如果对S内的元素a存在a^-1 * a = e,则将 a^-1称为a 的左逆元。 同理若存在 a * a^-1 = e,则将a^-1 称为a 的右逆元。 这里的左逆元和右逆元是针对给定运算
阅读全文
摘要:杭电1754:http://hdu.hustoj.com/showproblem.php?pid=1754 该题为标准的线段树,线段树的基础模型如下: 总共分为三个阶段: 1.建树 建树的时候要考虑到数组的大小 2.更新 3.区间查询 总代码:
阅读全文
摘要:解决RMQ(Range Minimum/Maximum Query)即区间最大最小值问题。 有一个离线算法(ST算法),这个算法是很高效了,时间是O(nlogn):(用O(nlogn)的时间进行预处理,再用O(1)的时间进行区间查询) 1.先是预处理(用动态规划解决) A数列为:3 2 4 5 6
阅读全文
摘要:嗯,首先边双连通分量(双连通分量之一)是:在一个无向图中,去掉任意的一条边都不会改变此图的连通性,即不存在桥(连通两个边双连通分量的边),称作边双连通分量。一个无向图的每一个极大边双连通子图称作此无向图的双连通分量。 对于边连通分量,我们需要先找出所有的桥,即为所有的桥做上标记。 首先要用dfs的性
阅读全文
摘要:首先杨辉三角是啥: 利益方面,把 (a + b)^n 展开,将会得到一个关于x的多项式: (a + b)^0 = 1 (a + b)^1 = a + b (a + b)^2 = a^2 + 2*a*b + b^2 (a + b)^3 = a^3 + 3*a^2*b + 3*a*b^2 + b^3 (
阅读全文
摘要:输入一个点列,顺序连接成一个封闭多边形,计算多边形的面积。 思路:求多边形的面积可以使用叉乘求面积。设多边形有n个顶点,用数组将其存起来,其余各点均与第一个点连起来,这样从逆时针方向来看,每两个点构成一个三角形,在使用叉乘来求的面积。有一点需要明确一下,每一次使用叉乘求面积,不能加绝对值,因为每一步
阅读全文
摘要:同构图是图论中专业的术语,假设G=(V,E)和G1=(V1,E1) 分别是两个图,如果存在一个双射m:即V->V1,然后所有的m(x,y)==m(x1,y1); 其实我的理解简单来说,同构图的点数相同,边数相同,然后,每个点的是一样的(连接了几条线,是否成环) 如果满足上述的条件,且这两个图形是不一
阅读全文
摘要:啊呜啊呜,看来好几天的KM浸提终于弄懂了,前两天就一直看来着,然后看不明白,就放着了,今天不信,重拾KM终于磕会了。然后,其实好傻逼,就是匈牙利算法,加了一个+d -d的过程 首先来看一个例子(hdu 2255 奔小康赚大钱) 题意: 1.村委会有n个人,n个房子 2.每个人可以为多个房子出不同的价
阅读全文
摘要:排序,顾名思义是进行排序,那么就有一个条件,就是可以排出结果。 比如A克B,B克C,C克A,,让你从A,B,C中选择出一个最牛逼的人,,那么这题就没有答案。 所以,条件就是不能出现环状。(即充要条件就是:有向无环图(Directed Acyclic Graph 简称DAG)) 比如,现在有一个兵乓球
阅读全文
摘要:(转自这位大佬的博客 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html ) Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中
阅读全文
摘要:强连通:在有向图G中,两个顶点间至少存在一条路径,则两个点强连通。 强连通图:在有向图中,每两个顶点都强连通,则有向图G就是一个强连通图。 强连通分量:在非强连通图中的极大强连通子图,就称为强连通分量。 直接根据定义,可以通过双向遍历取交集的方法求强连通分量,但是其复杂度为O(N^2+M)。更好的方
阅读全文
摘要:匈牙利算法其实就是一种递归,是由匈牙利数学家提出,该算法的核心就是寻找增广路经,它是一种用增广路径求二分图最大匹配的算法。 其时间复杂度为O(v*e),v为左边的个数,e为右边的个数。 这是一个二分图,现在求这个图的最大匹配。 (1) 最开始的匹配会得到 1->A; 2->B; (2) 当对3进行匹
阅读全文