![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 53
算法基础小白
兮于怀
莫听穿林打叶声,何妨吟啸且徐行
展开
-
最小生成树(算法)
最小生成树(算法)1.普利姆算法(Prim)朴素版Prim(1)适用范围(2)模板(3)算法思路(4例题:Prim算法求最小生成树堆优化版Prim(1)适用范围2.克鲁斯卡尔算法(Kruskal)(1)适用范围(2)模板(3)算法思路(4)例题:Kruskal算法求最小生成树最小生成树(算法)1.普利姆算法(Prim)朴素版Prim(1)适用范围适用于稠密图(常...原创 2020-03-12 22:04:36 · 379 阅读 · 0 评论 -
数论传说(ACM算法)
数论传说数论传说一.除数的探讨初探了解:性质二.模与余:1.模运算:2.同余的性质:3.快速幂3.1快速幂取模3.2优化版大整数快速幂,O(nlogn),推荐使用!三.数论重要定理及应用1.欧几里得定理2.扩展欧几里得裴蜀定理:3.线性同余方程(模线性方程)4.中国剩余定理(模线性方程组)4.1定义4.2扩展中国剩余定理:各m不互质5.乘法逆元6.二次同余方程7.唯一分解定理:7.1定义:7.2性质:7.3唯一分解定理完全模板:O(φ(n))7.4N!的素因子分解:7.5Pollard-rho 大数因式分解原创 2020-05-22 23:13:51 · 599 阅读 · 1 评论 -
数论之博弈论
数论:博弈论1.巴什博弈(BAshGame)题目模板只有一堆n个物品两个人轮流取,每次只能取1~m个物品,谁先取完,谁胜利;(n,m是输入的随机数)解题思路1.当 n = m+1 时 第一个取的人不可能获胜;2.•当 n = k(m + 1) + r 时 (k,r,s都是未知的整数)* •先取者拿走 r 个,那么后者再拿(1~m)个 • 此时 n =(k-1)*(m+1)+s •先取者再拿走s 个 最后总能造成 剩下n=k(m+1) 的局面*3.•若n=k原创 2020-05-13 09:01:24 · 576 阅读 · 0 评论 -
[转]SG函数与SG定理
SG函数与SG定理必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败。 N点:必胜点,处于此情况下,双方操作均正确的情况下必胜。必胜点和必败点的性质: 1、所有终结点是 必败点 P 。(我们以此为基本前提进行推理,换句话说,我们以此为假设) 2、从任何必胜点N 操作,至少有一种方式可以进入必败点 P。 3、无论如何操作,必败点P 都只能进入 必胜点 N。我们研究必胜点和必败点的目的时间为题进行简化,有助于我们原创 2020-05-15 19:26:24 · 223 阅读 · 0 评论 -
快速排序1(算法)
快速排序(标准版)思想:分治思想算法思路:确定分界点 q[l],q[(l+r)/2],q[r],随机调整区间:确定一个分界点x,使得所有左边的数都小于等于x,所有右边的数都大于等于x递归处理左右两段内容调整区间方法一:(暴力的调整区间,时间复杂度O(n))创建两个数组a[],b[]q[l~r]:q[i]<=x x->a[]q[i]>x ...原创 2020-03-16 19:31:41 · 241 阅读 · 0 评论 -
离散化1(算法)
离散化(整数保序离散化)(标准版)对于值域比较大(0-10^9),对于这些值,我们需要把他们当成下标来做,我们可以把它映射到从1开始连续的数组之中存储假设:a[] = {1,3,100,2000,5000000}//a有序映射之后 1->0 3->1 100->2 2000->3 5000000->4问题:a[]中可能存在重复元素 所以需要...原创 2020-03-19 08:16:37 · 505 阅读 · 0 评论 -
C++ STL map基础知识
一、时间复杂度O(logn)二、优点可使用键作为下标来获取一个值。请注意:关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。三、头文件#include<map>四、操作方法定义map<int,string> map1; //默认为空访问方法map<string,int> mp ; mp["hello"] = 8 ; mp["hello"] = 100 ; mp["aloha"原创 2022-01-23 14:31:27 · 1140 阅读 · 0 评论 -
快速输出学生的成绩
例题:快速输出学生的成绩题目描述一个班级有n名学生,现在给出n名学生的姓名和总成绩,学生的姓名由一串小写字母组成,总成绩是一个正整数。现在有m次询问,每次询问都会给出一个姓名(姓名不一定是已经给出的学生的姓名)。如果学生成绩存在,输出成绩,如果不存在,输出-1 。数据保证(不存在重名的学生)输入第一行一个整数 n (1<=n<=10^5)第2-n+1行,每行一个字符串和一个正整数,代表第i个学生的姓名和成绩第n+2行 输入一个整数m接下来m行 每行一个字符串,代表要询问的姓名输出原创 2022-01-23 14:41:35 · 518 阅读 · 0 评论 -
二分法(算法竞赛进阶指南笔记)
二分(算法进阶指南笔记)作用:①二分的基础用法是在单调序列或单调函数中进行查找.②当问题的答案具有单调性时,就可以通过二分把求解转化为判定(根据复杂度理论,判定的难度小于求解)。③还可以扩展到通过三分法去解决单峰函数的极值以及相关问题。一、整数二分1.模板:二分的写法保证最终答案处于闭区间[l,r]以内,循环以l=r结束,每次二分的中间值mid会归属于左半段与右半段二者之一。(1)在单调序列a中查找>=x的数中最小的一个(即x或x的后继):while (l < r){原创 2022-03-24 20:44:22 · 1749 阅读 · 0 评论 -
闫式DP分析法思维导图(动态规划)
前几天看了y总的闫式dp分析法视频,激动不已,于是根据视频写了一张思维导图,仅是一些y总话语转述而已。当时发了一条动态,因为忘记上传原图了,有很多小伙伴想看原图,所以分享一下~~,有需要的小伙伴就拿去吧,还是有很多不足,忘批评改正。...原创 2022-03-22 17:02:42 · 461 阅读 · 0 评论 -
什么是暴力解法?
有人说时间复杂度高的解决方法就是暴力,有人说暴力是一种思想,那到底什么是暴力算法?原创 2022-03-22 16:59:25 · 1055 阅读 · 0 评论 -
巴什博奕(Bash Game)与威佐夫博弈(Wythoff game)
绪论博弈论又被称为对策论,既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。ICG(公平组合游戏)在算法竞赛中出现的博弈论往往是ICG(公平组合游戏 Impartial Combinatorial Games)的,这类题目有如下特征:①有两名选手:②两名选手交替进行,每次一步,每步都是在有限的合法集合中选取一种进行;③在任何情况下,合法原创 2022-03-20 16:55:56 · 6002 阅读 · 0 评论 -
基础算法之双指针(算法基础)
双指针1.类型(1)两个指针指向两个序列(2)两个指针指向一个序列2.核心思想3.模板4.例题(1)输出单词(2)最长连续不重复子序列双指针1.类型一般来说有两大类,用途广泛(1)两个指针指向两个序列对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作.两个序列,两个指针分别指向两个序列.(2)两个指针指向一个序列对于一个序列,用两个指针维护一段区间.情...原创 2021-03-24 19:13:52 · 397 阅读 · 0 评论 -
质数(算法)
质数(素数)1.质数的判定——试除法(1)暴力解法(2)优化解法2.分解质因数——试除法(1)暴力解法(2)优化解法3.筛选质数(1)普通筛法(2)埃氏筛法(3)线性筛法质数(素数)在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,也叫做素数。1.质数的判定——试除法(1)暴力解法质数判定的最简单的求法,从质数的定义出发,时间复杂度为O(n),效率较低....原创 2021-03-24 19:11:57 · 410 阅读 · 0 评论 -
快速排序2(算法)
快速排序1.核心思想2.思路3.模板4.例题5.总结快速排序1.核心思想——分治分治 字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并,这个技巧是很多高效算法的基础。2.思路(1)确定分界点:一般选q[l], q[(l+r)/2], q[r],也可随机...原创 2021-03-24 19:10:30 · 87 阅读 · 0 评论 -
结构体数组排序(struct结构体+bool型重载或重写+sort排序函数)
struct结构体+bool型重载或重写+sort排序函数几点说明:1.按照结构体数组的某一项排序,那么一个结构体包含的其他元素仍保持不变。也就是说只能选择其中一项作为指标进行排序,相应的其他值对应不变化。2.排序后仍然是它们的组合,只是顺序变了而已3.如果希望升序排序,就是"<",降序排列就是">"号,这样便于直观记忆.如果希望用elem2作为比较标准,就把elem1改为elem2,这样结构体就以elem2为比较标准排序了. bool comparison(example a,e原创 2021-03-10 20:08:24 · 2768 阅读 · 0 评论