
算法图论数学系列
暂无简介.
Cancelleds
Ihopeit's notgood
展开
-
【算法简述】图论专题:欧拉回路
图论问题概述总结(1)对于图论,我们尊熟悉的算法是比较多的,这次,我就找了集中常用的算法。欧拉回路欧拉回路就是在一张有向或无向图中求出一笔画问题的具体画法。方法:先思考此题是否是用欧拉回路来解决。思考是有向图或无向图来解决适用于欧拉回路。对于有向图,保证每个点的入度为出度;对于系数图,保证每个点为偶数。我们对于这个算法,可以用来图:就向这样,接下来,我们看看代码:题:...原创 2019-06-09 16:35:08 · 438 阅读 · 0 评论 -
【算法专题】数论专题:组合数学
【算法专题】数论专题:组合数学引入找规律数学归纳法组合数学基本计数原理经典列题解析列题(节选)TWO.组合数学引入列题:兔子问题这道题可以怎么写呢?这里有两种方法:找规律&&数学归纳法找规律找规律来讲就是递归:#include<bits/stdc++.h>using namespace std;int main(){ int f0=1,f1=1,f...原创 2019-08-12 11:28:41 · 492 阅读 · 0 评论 -
【算法简述】图论专题:拓扑排序
图论问题总结概述拓扑排序算法流程实现代码一个问题通常会涉及多个环节,但是,环节之间是有特殊关系,有些活动在别的活动做完才能继续执行,比如,在刷题的环节时,你必须先我完成一个环节的任务,后面的环节都会有先前的要求。这样的过程我们叫做有向无环图:拓扑排序基本思想:将有向无环图去掉它的约束。找出一个满足有向无环图的满足关系的节点排列(点不受后面的约束)以施工的流程图为例,有些活动(子工程)...原创 2019-08-09 16:38:57 · 477 阅读 · 0 评论 -
【算法简述】图论专题:最短路
图论问题概述总结对于图论,我们尊熟悉的算法是比较多的,这次,我就找了集中常用的算法。最短路算法(Dijkstra,SPFE,FLOYD)Dijkstra单源最短算法首先,此算法适用于计算一个点到另一个点的最短路径,且算法绝对不能出现负环。这个算法的速度慢,只用于接觉小规模的问题,如图:这个图就是求算法的基本思路。算法过程:从节点上找到最近点那个节点,将他标记,加入集合U。...原创 2019-08-10 13:41:34 · 3436 阅读 · 0 评论 -
十进制转八进制C++做法
描述:把任一给定的十进制正整数转换成八进制数输出。方法一:指针#include <bits/stdc++.h>using namespace std;int main(){ int d; vector<int> vec; cin>>d; while (d) { vec.push_back(d%8); d=d/8; } for(vector<int>::iterator ip=vec.end()-1;ip>=vec原创 2020-10-18 12:28:18 · 4599 阅读 · 1 评论 -
排序算法:归并排序(Merge Sort)
归并排序归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解。归并排序将排序数组A[1…n]分成两个各含n/2个元素的子序列,然后对这个两个子序列进行递归排序,最后将这两个已排序的子序列进行合并,即得到最终排好序的序列:**归并排序的时间复杂度为:O(nlgn),其中 MERGE(a,b,c,d)的时间复杂度为O(n)。**如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序原创 2020-10-08 08:58:55 · 336 阅读 · 0 评论 -
排序算法:冒泡排序(Bubble Sort)
冒泡排序算法原理冒泡排序的原理是每次从头开始依次比较相邻的两个元素,如果后面一个元素比前一个要大,说明顺序不对,则将它们交换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成。时间复杂度冒泡排序的时间复杂度为O(N)。初始状态是排好序的的,一趟扫描即可完成排序。所需的关键字比较次数X和记录移动次数 Y均达到最小值(Xmin = n-1、Ymin = 0)冒泡排序总的平均时间复杂度为O(N^2)。若初始文件是反序的,需要进行N趟原创 2020-10-08 08:56:14 · 750 阅读 · 0 评论 -
高精度算法模板
高精度加1#include <stdio.h>#include <string.h>int main(){ char a[310], b[310]; int c[310], d[310], e[310]; scanf("%s %s", a, b); int x = strlen(a), y = strlen(b); for (int i = 0; i < x; i++) { c[x-1-i] = a[i] - '0原创 2020-10-07 10:09:24 · 112 阅读 · 0 评论 -
生成随机数代码
御用头文件:#include<time.h>产生小数与负数#include<bits/stdc++.h>#include<ctime>using namespace std;int main(){ srand(time(0));//读入系统时间,种子数值 double a;//小数 for (int i = 0; i < 100; i++) if (rand() % 10 > 0.4) { c原创 2020-10-07 10:07:10 · 6289 阅读 · 0 评论 -
线性筛法求质数
数寻找时,开始最普遍的思路就是双重循环暴力枚举,时间复杂度O(N),复杂度通常比较高,最可怕的是当数据范围特别大的时候(1e),于是就需要像欧拉筛O(N)与埃氏筛O(nloglog)这样的算法。埃氏筛法又称为Eratosthenes筛法(埃拉托斯特尼),简单来讲就是找到一个质数x,然后成倍2x,4x,6x…这样来进行查找,找到一个数就标记,没标记的肯定是质数。埃氏筛法的基本思想 :一般从2开始,将每个质数的倍数标记成合数,以达到筛选质数的目的。#include <bits/stdc++.h&g原创 2020-10-07 10:05:45 · 420 阅读 · 0 评论 -
【算法简述】基础数据结构-带权并查集
带权并查集带权并查集实现带权并查集合并一般并查集只维护每个节点的根节点,但是带权并查集还可以维护每个节点到其更节点的距离,因此,这里带权并查集有重要的作用。(一开始看发现完全看不懂,但是看了资料 懂了那么一点点…)带权并查集实现现在给你们讲讲这个带权的并查集该怎么弄,一般就是这样的解题思路:将其中两个队列合并,也就是把第一个队列存到第二个队列后面,以后好方便查询这个合并的值。查询某个...原创 2020-10-07 09:06:46 · 283 阅读 · 0 评论 -
【算法简述】基础数据结构-种类并查集
种类并查集种类并查集的类型种类并查集是借助并查集来解决一系列种类的一些查询问题。这是带权并查集中的一种。但是!种类并查集没有什么特殊的地方,因为无畏就是让种类并查集的类型假设我们有N个人,N个个人有M组关系,我们让N个人的关系为X(同性)Y(异性),如果他们产生了矛盾,那么,会有多少种矛盾发生呢?其实可以用带权并查集来做的,2,6异性,6,1异性1,2同性:int get(int x)...原创 2020-10-07 09:06:40 · 270 阅读 · 0 评论 -
初级数据结构-目录
初级数据结构-目录线性数据结构树形数据结构树形数据结构(2)线性数据结构2019-08-12普通队列(施工中)单调队列(施工中)优先队列(施工中)栈(施工中)单调栈(施工中)树形数据结构2019-08-13二叉树(施工中)完全二叉树(施工中)满二叉树(施工中)树形数据结构(2)2019-08-14并查集(施工中)带权并查集(施工中)种类并查集(施工中)...原创 2020-10-07 09:06:24 · 273 阅读 · 0 评论 -
【算法简述】基础数据结构-单调队列
单调队列单调队列的作用&原理题目组织代码它的队首和普通的队列一样,只能删除元素,而它的队尾既可以添加元素也可以删除元素。 他随队尾输出,出队。单调队列的作用&原理就是用来维护一段区间内的单调上升,下降性质,导出性质就是也可以用来维护一个区间内的值。他的原理是这样的:重复一遍,队列1,2,-3,-4,2.如果元素a入队,从队尾弹出所有大于a的值,再把a加紧队尾。1带入队列...原创 2020-10-06 10:06:33 · 278 阅读 · 6 评论 -
【算法简述】基础数据结构-单调栈
单调栈单调栈定义总结效果单调栈这个东西和单调队列差不多,只是维护一个栈的单调性,所以,这类提的解法可以参考单调队列。只是普通的单调栈!——真的!以前只是总结——by rebirth_death单调栈定义单调递增或单调减的栈 ,和比如在OI比赛中的那些比较大或比较小的输的参考如图,图中写的是我们栈中的元素,假设上图是一个单调栈。于是,此时的情况就有两种:栈顶元素小鱼即将插入的...原创 2020-10-06 10:06:26 · 219 阅读 · 0 评论 -
【算法简述】基础数据结构-二叉树
二叉树二叉树类型空二叉树树是一种非线性数据结构,在图中使用分支关系组成的结构,它的子树通常按照左右分为左子树和右子树,父子节点和儿子节点都是其中的元素,如下图:当然,后面我会写满二叉树,这也是一个满二叉树,我后面会写。二叉树类型空二叉树...原创 2020-10-06 10:06:19 · 275 阅读 · 0 评论 -
【算法简述】基础数据结构-满二叉树
满二叉树满二叉树定义&性质满二叉树是是个超级意味深长无敌复杂无可奈何让人超级意味深长无敌复杂无可奈何…但是国外的二叉树说法就不一样:但是,我们还是让国内的算法为标准,再说我们讲太多也不好,所以这次我只讲国内的(满二叉树)满二叉树定义&性质一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树;如果一个二叉树的层数为k,且结点总数是(2^k) -1,...原创 2020-10-06 10:06:12 · 1122 阅读 · 0 评论 -
【算法简述】基础数据结构-并查集
【算法简述】基础数据结构-并查集并查集基本基本结构实现并查集路径压缩联通性列题解析【模板】并查集亲戚网络交友关押罪犯接龙并查集也是用来维护集合的,和前面学习的 set 不同之处在于,并查集能很方便地同时维护很多集 合。如果用 set 来维护会非常的麻烦。并查集的核心思想是记录每个结点的父亲结点是哪个结点。然而可以知道,这样空间时间复杂度极高,无法通过题目的时限.并查集基本基本结构初始化...原创 2020-10-06 10:05:58 · 211 阅读 · 0 评论 -
【算法简述】基础数据结构-优先队列
优先队列优先队列定义优先队列操作优先队列部分用法代码列题分析优先队列是个好东西,他有专门的库:priority_queue,所以可以直接待用。优先队列定义首先函数在头文件中,使用的时候需要注意。优先队列有四种表现方式:priority_queue<int> q;priority_queue<int, vector<int>, cmp> q;prio...原创 2020-10-05 18:34:43 · 173 阅读 · 0 评论 -
【算法简述】初级数据结构-栈
栈栈库栈的相关概念栈的操作列题栈中的数据元素遵守先进后出的原则,栈顶的第一个元素是栈顶元素,只能在栈顶进行插入和删除操作。出栈入栈顺序相同。栈库stack<int> ......//......为名称栈的相关概念栈顶可以插入后删除元素,栈顶可以插入元素。压栈:栈的插入操作,也叫作进栈。弹栈:删除栈的操作叫做弹栈。栈的操作入栈:push();出栈:pop...原创 2020-10-05 18:34:22 · 189 阅读 · 0 评论 -
【算法简述】基础数据结构-完全二叉树
完全二叉树完全二叉树定义完全二叉树性质完全二叉树判定今天给大家带来完全二叉树,至于完全二叉树,就是比满二叉树的多一点。完全二叉树定义一棵二叉树中,最下面两层结点的度可以小于2,并且最下层的叶结点集中在靠左的任意位置上,这样的二叉树被称为完全二叉树。但完全二叉树≠满二叉树,因为最下层的子节点在最下方的左边,所以,也可以说一颗二叉树一定是完全二叉树,因此,这里注意不要搞错了概念:所有...原创 2020-10-05 18:33:40 · 258 阅读 · 0 评论 -
【算法简述】基础数据结构-堆
堆堆的结构大根堆小根堆堆中结点序号堆的操作向上推值插入元素向下删除删除元素堆排序这是一个特殊的数据结构,它基于完全二叉树,所以有如下特点:所有的节点都出现在最后一层,或s-1层任意的节点如果右子树的最大的层次,左子树的最大的层次为s或s+1一棵二叉树中,最下面两层结点的度可以小于2,并且最下层的叶结点集中在靠左的任意位置上,这样的二叉树被称为完全二叉树。所以堆是个特殊的数据结构...原创 2020-10-05 18:32:20 · 368 阅读 · 0 评论 -
【算法简述】基础数据结构-队列
【算法简述】基础数据结构-队列队列(queue)一样都是线性数据结构,它的特征如下:队列中的数有的特征,它遵循先进先出的原则,这也是栈的特征。可以在队尾添加元素,队头添加元素,也可以队尾删除元素。...原创 2020-10-05 18:31:23 · 350 阅读 · 0 评论 -
二分图
二分图一、二分图定义大概就是在一个图G(S,V)中,可以把点集S分成两个集合使同一个集合中的点之间没有边相连;比如说这个:这个很简单,不知道的可以自行查阅有关资料;二、二分图的匹配什么叫二分图的匹配呢?把二分图的两个点集中有边相连的边”匹配在一起“就叫二分图的匹配;比如说上图中我把1与2配对,3与4配对,5与6配对,这就是二分图的一组匹配;而看到这里我们可以自然而然的引出一个问...原创 2019-05-17 19:33:02 · 166 阅读 · 0 评论 -
C++病毒小程序
**一段简单的C/C++病毒源程序 **主要是感染C/C++源文件只要编译该段源程序就会使当前目录里的所有.c和.cpp文件感染上病毒,当然如果是没有主函数的源文件就没有作用:思想很简单:插入一段复制自身的代码,而这段代码是将自身的病毒部分传播给同目录下的其它文件。程序清单:1.病毒文件//START#include <windows.h>#include <fstr...原创 2019-05-03 10:52:15 · 1685 阅读 · 0 评论 -
【算法专题】图论专题:并查集
图论问题概述总结(3)基本结构并查集实现路径压缩联通性路径压缩的实现种类并查集多种关系种类并查集并查集 是一种树型的数据结构,用于处理一些不相交集合的合并和查询问题。在使用中常常以森林来表示。基本结构并查集也是用来维护集合的,和前面学习的 set 不同之处在于,并查集能很方便地同时维护很多集 合。如果用 set 来维护会非常的麻烦。并查集的核心思想是记录每个结点的父亲结点是哪个结点。初始...原创 2019-08-07 16:13:22 · 278 阅读 · 0 评论 -
运算符合集:if与for循环
代码运算符表示类型双目运算符单目运算符三目运算符运算符优先级IN THE END双目运算符位逻辑运算符有6种位运算: & 与运算 | 或运算 ^ 异或运算 ! 非运算(求补) >> 右移运算 << 左移运算 ...原创 2019-07-20 15:45:38 · 302 阅读 · 0 评论 -
让电脑运行错误的一些代码
一些病毒代码,可以用来运行一下,你的电脑可能会发生…但大家都知道,病毒是恐怖的,你可以做一些有趣的代码.关机代码#includeusing namespace std;void main(){system(“cmd /c shutdown -s -t 60”); //这是调用cmdsystem(“pause”);}相信这很简单吧!还有个方法#include#include&...原创 2019-07-10 20:42:48 · 2137 阅读 · 5 评论 -
【树形数据结构】并查集
并查集并查集也是用来维护集合的,和前面学习的 set 不同之处在于,并查集能很方便地同时维护很多集 合。如果用 set 来维护会非常的麻烦。并查集的核心思想是记录每个结点的父亲结点是哪个结点。然而可以知道,这样空间时间复杂度极高,无法通过题目的时限.并查集基本基本结构初始化初始化很简单,将每个点所在集合初始化为它自己就可以了。void init() { for (int i = 1; i <= n; ++i) { fa[i] = i; }原创 2020-07-30 14:38:40 · 234 阅读 · 0 评论 -
【树形数据结构】二叉树&堆
二叉树&堆树是一种非线性数据结构,在图中使用分支关系组成的结构,它的子树通常按照左右分为左子树和右子树,父子节点和儿子节点都是其中的元素,如下图:当然,后面我会写满二叉树,这也是一个满二叉树,我后面会写。二叉树类型空二叉树这是一个特殊的二叉树,一个节点都没有,是个空的,很特殊吧。有根但无子树看,这个也是特殊的二叉树只有根节点,没有子节点。根左/右子树这个树有一个根节点一个子节点,很好看吧 !根左右子树也可以叫满二叉树。二叉树遍历二叉树遍历就是指原创 2020-07-30 14:36:20 · 347 阅读 · 0 评论 -
【线性数据结构】栈
栈栈库栈的相关概念栈的操作列题单调栈定义总结效果栈中的数据元素遵守先进后出的原则,栈顶的第一个元素是栈顶元素,只能在栈顶进行插入和删除操作。出栈入栈顺序相同。栈库stack<int> ......//......为名称栈的相关概念栈顶可以插入后删除元素,栈顶可以插入元素。压栈:栈的插入操作,也叫作进栈。弹栈:删除栈的操作叫做弹栈。栈的操作入栈:push();出栈:pop();落空栈:clear();取栈顶元素:top();栈的大小:size();清空栈:原创 2020-07-30 14:03:15 · 205 阅读 · 0 评论 -
【线性数据结构】队列
队列基础队列的特征队列的概念队列操作代码组织单调队列单调队列的作用&原理题目组织代码优先队列优先队列定义优先队列操作优先队列部分用法代码列题分析队列(queue)一样都是线性数据结构,它的特征如下:队列中的数有的特征,它遵循先进先出的原则,这也是栈的特征。可以在队尾添加元素,队头添加元素,也可以队头删除元素。基础队列的特征队列的概念队头和队尾:按照思想,从队头删除元素,从队尾入队元素。入队:插入队列的操作,是元素入队。出队:删除队列的操作,让元素出队。我们现在有一个队列,原创 2020-07-30 14:01:46 · 397 阅读 · 0 评论 -
关于博客园样式美化
文章目录页面定制 CSS 代码博客侧边栏公告页首 HTML 代码页脚 HTML 代码效果这个找了好久的代码…页面定制 CSS 代码#EntryTag{margin-top:20px;font-size:9pt;color:gray}.topicListFooter{text-align:right;margin-right:10px;margin-top:10px}#divRefreshComments{text-align:right;margin-right:10px;margin-bottom:原创 2020-06-06 16:12:55 · 604 阅读 · 0 评论 -
CSP-J 2019总结
文章目录前言(????)DAY -4前言(????)总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候!由于我是一个初二的蒟蒻,所以考试前先定了一个目标:前两道题AC(可是现实与想象就是差INF),后两道题写个AC自动机或随机数什么的,不然就打暴力骗点分什么的。怀着这样美好的心情出发。我自我感觉良好—— AK IOIDAY -4坐标:育才...原创 2020-06-06 15:01:11 · 977 阅读 · 1 评论