ACM&OI 基础数学算法专题

【前言】

本人学习了一定时间的算法,主要精力都花在数学类的算法上面

而数学类的算法中,本人的大部分精力也花费在了数论算法上

此类算法相对抽象,证明过程比较复杂

网络上的博客有写得非常好的,但也有写得不明所以的

因此,本人特此开一个新的专题,专门负责讲解一些比较基础的数学类算法

但本人知识面也有限,部分算法也还未掌握。因此,希望本专题也能促进本人学习这些算法

下面做出对更新的一些规定:

  1. 基本上保持每日更新一贴
  2. 对标注(已完结)的贴子,表明本贴子已完结
  3. 对标注(正在更新)的贴子,表明正在更新本贴
  4. 对以上两种标注的贴子,会在目录上建立超链接
  5. 对标注(未学习)的贴子,表明这个贴子的算法本人尚未掌握,正在学习,可能要较久才会更新
  6. 对标注(已咕)的贴子,表明本人因个人原因,暂停对本贴的更新,恢复更新时间未定
  7. 对其余所有未标注的贴子,默认为尚未挖坑

【目录】

  1. 数论专题(正在更新)
  2. 线性代数专题
  3. 组合数学专题
  4. 多项式专题
  5. 计算几何专题(未学习)
  6. 生成函数专题(未学习)
  7. 概率论专题
  8. 博弈论专题

原文地址:https://www.cnblogs.com/JustinRochester/p/12325222.html

时间: 2024-10-25 22:02:25

ACM&OI 基础数学算法专题的相关文章

[算法专题] LinkedList

前段时间在看一本01年出的旧书<effective Tcp/Ip programming>,这个算法专题中断了几天,现在继续写下去. Introduction 对于单向链表(singly linked list),每个节点有?个next指针指向后一个节点,还有一个成员变量用以储存数值:对于双向链表(Doubly LinkedList),还有一个prev指针指向前一个节点.与数组类似,搜索链表需要O(n)的时间复杂度,但是链表不能通过常数时间读取第k个数据.链表的优势在于能够以较?的效率在任意位

【枚举算法Day1】20170529-2枚举算法专题练习

20170529-2枚举算法专题练习 青岛二中日期 序号 题目名称 输入文件名 输出文件名 时限 内存 算法 难度 分类 081113 1 最大矩形 rectangle.in rectangle.out 1s 256MB 枚举 1 02枚举 081031 2 回文 palin.in palin.out 1s 256MB 枚举.优化 1 02枚举 081008 3 问题的设置 problemsetter.in problemsetter.out 1s 256MB 排序+枚举 1 02枚举 0810

七月25 ACM集训——kmp算法

字符串比配问题,通过引入next[]而使效率提高 关于next[]数组,是对模式串的特征来构造的: 为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀. 在匹配过程称,若发生不匹配的情况,如果next[j]>=0,则目标串的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配:若next[j]=-1,则将i右移1位,并将j置0,继续进行比较. 具体思想: 根据定义next[0]=-1,

ACM中常用算法----字符串

ACM中常用算法--字符串 ACM中常用的字符串算法不多,主要有以下几种: Hash 字典树 KMP AC自动机 manacher 后缀数组 EX_KMP SAM(后缀自动机) 回文串自动机 下面来分别介绍一下: 0. Hash 字符串的hash是最简单也最常用的算法,通过某种hash函数将不同的字符串分别对应到不同的数字.进而配合其他数据结构或STL可以做到判重,统计,查询等操作. #### 字符串的hash函数: 一个很简单的hash函数代码如下: ull xp[maxn],hash[max

[ACM] 最短路算法整理(bellman_ford , SPFA , floyed , dijkstra 思想,步骤及模板)

以杭电2544题目为例 最短路 Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗? Input 输入包括多组数据.每组数据第一行是两个整数N.M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路.N=M=0

图的算法专题——最短路径

概要: Dijkstra算法 Bellman-Ford算法 SPFA算法 Floyd算法 1.Dijkstra算法用于解决单源最短路径问题,严格讲是无负权图的最短路径问题. 邻接矩阵版 1 const int maxv=1000; 2 const int INF=1000000000; 3 int n,G[maxv][maxv]; 4 int d[maxv]; //起点到各点的最短路径长度 5 bool vis[maxv]={false}; 6 7 void Dijkstra(int s){ /

最短路径算法专题1----弗洛伊德

由于最短路径算法我认为比较重要,所以分成几个专题来慢慢细化去磨它,不能一口气吃个胖子嘛. 首先在说算法之前,先说清楚什么叫做最短路径. 题目一般会给你一张图,然后告诉你很多地方,然后告诉你各个地方之间的路程有多远,要你求出,两点间的最短距离,注意,题目给出的两点间的距离未必是最短的,可能通过第三个点转换之后达到更短.实际其实也是这样的,有时候两个地方并没有直线的道路只有曲线的绕路. 算法的思路: 1.用二维数组列出所有的距离,达到不了的用最大距离表示,如9999999 2.循环数组上面的每一个点

KM算法专题

原文:http://972169909-qq-com.iteye.com/blog/1184514 题目地址:这里. 1)求图中所有环的总长度(环的长度不唯一)的最小值.当无法得到完备匹配时说明环不存在. 第三题:http://acm.hdu.edu.cn/showproblem.php?pid=1853 直接建图,注意有重边哦! if (-c > w[a][b])     w[a][b] = -c; 当木有完美匹配输出-1 第四题:http://acm.hdu.edu.cn/showprobl

【算法专题】多项式相关

[快速傅里叶变换] 参考:从多项式乘法到快速傅里叶变换 by miskcoo FFT 学习笔记 by Menci 特点:FFT用于O(n log n)解决多项式乘法. (一)多项式的表示法: 系数表示法:f(x)=a[n-1]*x^(n-1)+...+a[0],称为n-1次多项式. 点值表示法:一个n-1次多项式在复数域中有n个根,即n个(x,y)可以唯一确定一个n-1次多项式. 对于一个多项式,从其系数表示法到其点值表示法的变换称为离散傅里叶变换(DFT),反之称为傅里叶逆变换(IDFT).