自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 C++生成题目样例文件的代码

//#pragma GCC optimize(2)#include<iostream>#include<iomanip>#include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<queue>#include<vector>#include<map>#include<stack>

2021-08-23 13:36:30 500

原创 【图论】图文详解匈牙利算法

匈牙利算法一、一些概念1.二分图2.二分图的匹配二、匈牙利算法的实现步骤1.情况一(你是我的唯一)2.情况二(你们都是我的翅膀)3.情况三(我会把你抢过来)4.情况四(我爱的人已经有了爱人)三、匈牙利算法的代码实现一、一些概念1.二分图一定不含有奇数环,可能包含长度为偶数的环, 不一定是连通图二分图是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in

2021-08-18 13:39:37 2626

原创 【图论】染色法判定二分图详解

染色法判定二分图一、二分图二、染色法1.算法实现思路2.DFS深度优先遍历代码实现3.BFS广度优先遍历代码实现一、二分图一定不含有奇数环,可能包含长度为偶数的环, 不一定是连通图二分图是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。

2021-08-15 17:10:46 2453

原创 【图论】Prim算法求最小生成树详解

Prim算法一、算法学习前先要知道1.最小生成树(必须了解)2.Dijkstra算法(建议了解)二、算法实现步骤1.初始化2.寻找三、算法的代码实现1.朴素Prim算法实现2.Prim算法优先队列优化一、算法学习前先要知道1.最小生成树(必须了解)对于无向图G(V,E),连接所有点V以及边集是E的子集的树称为G的生成树。而边的权值和最小的树即为G的最小生成树。2.Dijkstra算法(建议了解)Prim算法与Dijkstra算法在思路上非常相似,如果能理解Dijkstra算法的话对于Prim算法的

2021-08-13 14:20:57 2329 1

原创 【紫书第十一章】图论模型与算法入门

图论基础前言一、无根树转有根树二、表达式树三、最小生成树四、最短路问题1.Dijkstra算法2.Bellman_Ford算法3.Spfa算法4.Floyd算法前言有关图论的更多知识点请移步作者“图论与数据结构”专栏。专栏地址:图论与数据结构专栏一、无根树转有根树问题描述:输入一个n个结点的无根树的各条边,指定一个根节点要求转化为有根树。分析:树是一种特殊的图,我们可以用vector数组来存下这个图。然后定义一个数组p[n],p[i]为i的父节点。代码实现#include<iost

2021-08-12 17:42:04 566

原创 【图论】Kruskal算法求最小生成树详解

Kruskal算法求最小生成树一、算法学习前先要知道1.最小生成树概念2.数据结构:并查集二、Kruskal算法实现步骤1.把所有的边排序2.遍历所有的边三、Kruskal算法的代码实现一、算法学习前先要知道1.最小生成树概念对于无向图G(V,E),连接所有点V以及边集是E的子集的树称为G的生成树。而边的权值和最小的树即为G的最小生成树。2.数据结构:并查集博客链接:并查集介绍以及例题二、Kruskal算法实现步骤1.把所有的边排序把所有的边按照边的长度从小到大排序。对此,我们可以把边的起点

2021-08-12 15:31:47 2089

原创 【紫书第十章】数论与概率入门

数论与概率入门一、数论初步1.欧几里得算法(辗转相除法)2.素数筛-埃氏筛3.素数筛-欧拉筛4.扩展欧几里得算法5.快速幂二、概率基础1.容斥原理2.杨辉三角和二项式定理3.离散概率基础三、其它数学专题1.汉诺塔2.斐波拉契数列一、数论初步1.欧几里得算法(辗转相除法)在求两个数的最大公因数时,我们通常使用欧几里得算法来求解。int gcd(int a,int b){ if(b==0)return a; else return gcd(b,a%b);}最小公倍数:(a*b)/最大公约数

2021-08-11 19:01:01 443

原创 【紫书第九章】动态规划(DP)常见模型汇总与DP问题分析方法

看完了紫书第九章还是有一点迷茫,dp果然是一个比较抽象和困难的知识点,这里结合学长(CSDN账号:蹲坑玩手机)上课的课件和看完紫书后自己的一些思考来记录一下dp学习的心得。一、基础dp1.性质:拥有子问题,子问题最优解(即拥有最优子结构),对于一个原问题解最优,其子问题必定也是最优,同时原问题的最优解依赖于其子问题的最优解子问题重复性,一个子问题可能会影响多个不同的下一阶段的原问题无后效性,即此时的之前状态无法直接影响未来的决策,换句话说就是之前的每个状态如何得来并不影响未来对此时(当前)状态的

2021-08-10 17:26:34 1574 1

原创 【紫书第八章】算法的时间优化设计

一、算法的时间优化需要提前知道的知识点:时间复杂度例题:给你一个数组a[N],要求求出最大连续和。1.暴力枚举起点和终点(下策)最不需要动脑子的算法,暴力枚举就可以了。int a[N];void solve(){ int ans = a[1]; for(int i=1;i<N;i++) for (int j = i; j < N; j++) { int sum = 0; for (int k = i; k <= j; k++) sum += a

2021-08-07 16:15:45 736

原创 【紫书第七章】暴力美学(能用暴力解决的事情为什么要动脑子?)

一、简单枚举1.寻找被枚举量之间的关系例题博客:紫书 p182 除法 (作者:Barsaker)题意分析:本题看上去是需要枚举两个数字不重复的5位数或4位数(前导0),但是我们发现只要枚举好了第一个数就可以计算出第二个数。然后判断两个数是否数字都不相同。我们可以用一个函数来实现判断两个数是否符合数字不重复这个条件。然后我们可以枚举第一个数字(12345~98765)来确定所有第二个数字。小结:当我们需要枚举两个或更多数字、变量时,我们可以寻找需要枚举的变量之间的关系,通过已经确定的变量来减少需要枚

2021-08-06 16:07:40 375

原创 【紫书第六章】二叉树、欧拉图基本概念与性质

一、二叉树的编号对于一个数组tree[N]而言,我们如果把tree[1]作为根节点,那么tree[i]的左儿子节点坐标为tree[i * 2],右儿子坐标为tree[i *2+1]。这是一个非常重要的知识点。例题博客:紫书p148例题6-6 小球下落(作者:maplegam)思路:本题很容易就能想到暴力的思路,但是暴力的时间复杂度并不能让我们解决这一个问题,因此我们需要换一个思路去解决这个问题。书上提到:使用题目给出的编号i,当i为奇数时,它是往左走的第(i+1)/2个小球 。通过这条性质,我们

2021-08-05 12:40:43 970

原创 【紫书第六章】链表(list)、栈和双向队列(deque)

一、链表:list1、用处及优势链表对于一段数据的插入和删除操作具有很大的优势。而在数组、vector中,对于数据的插入与删除操作往往需要较高的时间复杂度。2、STL中list的常见用法 cout << "预设长度和值" << endl; list<int>l1(10, 0); for (list<int>::iterator it = l1.begin(); it != l1.end(); it++) { cout << *it

2021-08-04 11:06:57 183

原创 【紫书第五章】String、结构体、部分STL的常见用法

一、String相关1、带空格的字符串输入string a;getline(cin,a);2、字串的截取 string s = "sfsa"; string a = s.substr(0, 3); string b = s.substr(); string c = s.substr(2, 3); cout << a << endl; cout << b << endl; cout << c << endl;输

2021-08-03 16:07:10 143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除