acm之路
文章平均质量分 51
执我之镰
萌新+xiaobai
展开
-
由poj 1125,poj 1062解析最短路径
由poj 1125,poj 1062解析最短路径 一、poj 1125(有向图,未定义起始点和终点) 题意:给出一个图,点表示人,边表示消息从这个人传到另一个人所花的时间,你的任务是求把消息告诉里面的哪一个人(假设你只能告诉一个人),能让消息遍布整个网络所花的最少时间,并求最少时间。 //这个题目题意比题解难。。。。 题解:首先从n个人中选择一个人,把消息告诉他,然后用原创 2017-09-17 20:16:25 · 229 阅读 · 0 评论 -
求最短路径的三种基本算法
最短路径 //代码请翻挑战程序设计 一、Bellman-Ford算法 从原点一层一层扩展更新(像从a能直接到b,则看作b是a的下一层),直到再次遍历所有边时不再有更新,则所有点距原点的最小值确定。 1、用在:在无负圈的单向图求两点最短路径。 2、模板:d[n]:n个点距原点最短路径,初始化INF。(更新对象,下同) Struct e原创 2017-09-10 19:10:40 · 1984 阅读 · 0 评论 -
高效求最短路SPFA算法(C语言)
看这个之前建议理解了Bellman-Ford算法,因为本算法可以看做是对其的优化。 优化一、改用邻接表存图。邻接表的使用,即一个点配一个链表。 优化二、用列表来存储松弛边缘(Bellman-Ford算法过程可以看作一个图,从其中的一个起点开始松弛,一层一层松弛下去,直到遍布全图),不再需要每次遍历全图。 其它好像没变,还是用d[i]来表示i点距源点最短距离。 多了一个标志数组(防止原创 2017-09-26 18:50:24 · 1561 阅读 · 0 评论 -
C语言实现大型非负整数加减乘除
大型非负整数加法、乘法 Long long能存储的数长度最大仅为20位,当数据超过了,便不能再进行普通的计算。 一、加法 把超长的数据看成字符串,以字符数组来存储,第一个字符即该数据的最高位。对两个数组从最低位开始逐位相加,相加的结果对10取余,即计算结果在该位的数字,考虑到可能有进位,把相加的结果除10(小数部分会被抛弃),加入到下一轮更高位的计算。 //s=s1+s2原创 2017-09-19 20:26:58 · 2187 阅读 · 0 评论 -
字符串匹配-KMP
字符串匹配-KMP原创 2017-09-28 19:45:18 · 177 阅读 · 0 评论 -
字符串匹配-扩展KMP
字符串匹配-扩展KMP 一、说明。 如字符串cabcab 后缀:b,ab,cab,bcab,abcab,cabcab 前缀:c,ca,cab,cabc,cabca,cabcab 扩展kmp:可求字符串T的(所有)后缀与字符串S的最长公共前缀 二、next数组(重点) 这里把T和S当做同一个字符串。 Next[i]表示从字符i开始的后缀与字符串的最长公共前缀数 如原创 2017-09-28 21:06:22 · 291 阅读 · 0 评论 -
二分匹配之匈牙利算法
二分匹配之匈牙利算法 一、概念 二分图:把点分为两个集合,在同一个集合的点之间不能有边,也就是说边只能存在于分别来自两个集合的点间,这样的图就是二分图。 最大二分匹配:在原二分图上通过删除一些边,来保证每个点只能与一个点相连(一一对应),能保留最多的边数,这个边数就是最大二分匹配 二、算法步骤 1)初始化,存图。 2)选定其中一个集合,依次对集合中的每个点dfs搜索增广路,成功搜原创 2017-10-01 15:03:15 · 212 阅读 · 0 评论 -
数论在acm竞赛中的应用1
关键词:欧几里得,扩展欧几里得,乘法逆元,同余膜,质数,二分快速幂,矩阵,待续 一,算法介绍 1)欧几里得 Gcd(a,b)=Gcd(b,a%b) 注解:递归,循环也行,a=Gcd(a,0)原创 2017-10-27 21:53:42 · 346 阅读 · 0 评论