自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构——最短路径算法之floyd算法

数据结构——最短路径算法之floyd算法

2021-10-30 19:46:21 480

原创 数据结构——最短路径之Dijkstra算法(与最小生成树的prime算法很像,建议一起看)

最短路径之Dijkstra算法(一)Dijkstra算法单源最短路径:就是从某一个顶点出发,到图中任意顶点之间的最短路径;【算法概述】:Dijkstra算法适用于解决单源最短路径的问题。即:从源点到任意指定顶点之间的最短距离的问题;但Dijkstra算法要求所有边的权值非负。看过Prime算法的同学都知道,Dijkstra算法与Prime算法很相似,不同的就是dis数组的更新方式。Dijkstra算法用邻接矩阵存图比较方便。【算法思想】:先用一个数组记录从源点到图中个顶点直接相连的距离,如果不直接连

2021-10-30 11:52:29 584

原创 数据结构——最小生成树之prime算法(与最短路径之迪杰斯特拉算法很像)

#include<iostream>#include<cstring>#include<vector>#define INF 0x3f3f3f3f//表示该两点之间没有路,距离无穷远#define MAX 1000//最多有1000个点 using namespace std;int matrix[MAX][MAX]={0};//邻接矩阵存储图int min_distance[MAX]; //记录该结点到生成树的最短路径 bool visited

2021-10-27 21:18:52 583

原创 数据结构——最小生成树之克鲁斯卡尔算法(Kruskal)

Kuskal算法【算法简介】:上一篇中的Prime算法是一种“加点式的算法”,而Kuskal算法是一种“加边式的算法”;Kuskal算法与Prime算法都是一种贪心算法,但Kruskal算法对图中存在相同权值的边时也有效。【算法思想】:算法对权值从小到大排序,每次选取当前权值最小的边加入结点,直到所有的结点都已加入结点。算法中用到了并查集的思想(并查集),通过并查集来判断两个结点是否有共同的父节点,如果有,则表明两个结点已经联通。如果没有,就将两个结点联通,记录路径。Kruskal算法也是采用贪心算法

2021-10-27 19:10:10 570

原创 算法题目——读书知识点统计问题(POJ-3320)(尺取法)

题目链接:poj-3320问题:杰西卡是一个非常可爱的女孩,受到许多男孩的追捧。最近她有个问题。期末考试快到了,但她几乎没花什么时间。如果她想通过考试,她必须掌握一本厚厚的教科书中包含的所有思想。那本教科书的作者和其他作者一样,对这些观点极为挑剔,因此有些观点被多次提及。杰西卡认为,如果她能把每个想法至少读一次,她就能通过考试。她决定只读这本书的一个连续部分,其中包含了整本书涵盖的所有思想。当然,子手册应该尽可能薄。一个非常勤劳的男孩为她手工索引了杰西卡教科书的每一页,每一页都有什么想法,因此他的求爱

2021-10-14 20:07:21 409

原创 算法题目——子序列和问题(poj-3061)(尺取法)

题目链接:POJ-3061题意:给定一个序列,使得其和大于或等于S,求最短的子序列长度。问题分析:1.首先序列都是正整数,当子序列和大于等于S时,已经没有必要再将右端点继续向右移动。因为再向右移动,序列的长度一定会大于此时的长度2.所以,当子序列和小于S时,右端点向右移动;当子序列和大于等于S时,左端点向右移动。3.如果右端点一直移动到最右端时,此时的序列和仍小于S,就结束枚举这个题目区间和明显是有趋势的:单调变化,所以根据题目要求很容易求解,但是在使用之间需要对区间前缀和进行预处理计算。问

2021-10-14 19:32:36 362

原创 算法题目——杨辉三角问题

思路:#include<iostream>#include<cstdio>#include<cstring>#include<map>#include<cmath>#include<algorithm>using namespace std;void solve(){ }int main(){ int n; cin>>n; int matrix[n+1][n+1]; memset(mat

2021-10-12 21:24:53 135

原创 算法题目——省份数量(dfs,bfs)

题目链接:leetcode.547省份数量dfs:深度优先遍历:递归思路:读入数据完成后重点:建立一个数组记录该省份是否访问,新建一个元素记录省份圈的个数1.对所有省份循环一次,如果该省份未被访问,则进入dfs2.dfs中,对所有省份循环一遍,如果未被访问且省份index可以到达省份j时将该省设置为已访问,且进入j省的dfs中#include<iostream>#include<algorithm>using namespace std;int matrix[

2021-10-12 20:12:49 259

原创 算法题目——岛屿数量(bfs dfs)

题目链接:leetcode.200岛屿数量== 重点:路过过的点做新标记 ,以防止重复路过 ==#include<iostream>#include<algorithm>#include<vector>using namespace std;char str[1000][1000];const int dx[4]={0,0,-1,1};const int dy[4]={1,-1,0,0};void bfs(int x,int y,int m,int

2021-10-12 17:41:34 312

原创 算法题目——被围绕的区域(dfs,bfs)

leetcode.130被围绕的区域bfs解法:深度优先遍历:思路:读取数据后1.先将数据的四周进行bfs算法(因为只有与外围接触的点,才能不被包围)算法执行中时,递归看看该点的上下左右有没有是O的,如果是O则标记为A2.循环完四周之后,将数据中的O全部换成X,将全部的A换成O即得到最终的结果#include<iostream>#include<algorithm>#include<vector>using namespace std;//定义为全

2021-10-12 15:51:21 238

原创 算法题目——最长连续序列

题目链接:leetcode.128思路:1.现将数据存放到数组中去2.再将数据存到一个集合set中去(方便去重,查找某一个元素是否存在于数组中)3.循环该数组,若该元素的前一个元素不在数组中(通过集合来查找),说明它将会是一个连续序列的开始元素,在对该元素循环查看它的下一个元素是否存在该数组(还是使用set来查看)4.max(当前的最大长度,和之前的最长长度)#include<iostream>#include<algorithm>#include<vector

2021-10-12 14:48:26 168

原创 算法题目——第K大的数

题目链接:剑指offer.76思路:使用 priority_queue 构建优先队列,这里注意要构建大顶堆,使less;pop() 弹出前 K-1 个数值top() 即可#include<iostream>#include<vector>#include<algorithm>#include<queue>using namespace std;/* 使用 priority_queue 构建优先队列,这里注意要构建大顶堆,使用 les

2021-10-12 13:55:18 125

原创 算法题目——生成括号匹配

题目链接:剑指offer2.76#include<iostream>#include<algorithm>#include<vector>using namespace std;void solve(int left,int right,vector<string> &vec,string &str){//当左右括号都使用完的时候,即是一种答案解 if(left == 0 && right == 0) {

2021-10-12 13:45:34 185

原创 算法题目——使用最小花费爬楼梯(动态规划)

题目链接:746.使用最小花费爬楼梯方法:动态规划假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费。可以通过动态规划求解。创建长度为n + 1的数组dp,中dp[i] 表示达到下标i的最小花费。于可以选择下标0或1作为初始阶梯,因此有dp[0] = dp[1]= 0。当2≤i≤n时,可以从下标i-1使用cost[i- 1]的花费达到下标i,或者从下标i-2使用costli - 2]的花费达到下标i。为了使总花费最小,dp[i]

2021-10-07 23:20:48 262

原创 算法题目——爬楼梯(动态规划)

题目链接:70.爬楼梯本题大家如果没有接触过的话,会感觉比较难,多举几个例子,就可以发现其规律。爬到第一层楼梯有一种方法,爬到二层楼梯有两种方法。那么第一层楼梯再跨两步就到第三层 ,第二层楼梯再跨一步就到第三层。所以到第三层楼梯的状态可以由第二层楼梯 和 到第一层楼梯状态推导出来,那么就可以想到动态规划了。我们来分析一下,动规五部曲:定义一个一维数组来记录不同楼层的状态确定dp数组以及下标的含义dp[i]: 爬到第i层楼梯,有dp[i]种方法确定递推公式如果可以推出dp[i]呢?从d

2021-10-07 22:44:50 194

原创 算法——常用的数据结构/模板/基础知识

常用的数据结构/模板/基础知识c++——优先队列(priority_queue)c++中的全排列函数next_permutation()c++——优先队列(priority_queue)参考文章:c++——优先队列(priority_queue)c++中的全排列函数next_permutation()c++中的全排列函数next_permutation()...

2021-10-02 16:48:53 159

原创 算法题目——求众数

在c++中有两个关联容器,第一种是map,内部是按照key排序的,从小到大 第二种是unordered_map,容器内部是无序的,使用hash组织内容的。 #include<iostream>#include<map>#include<algorithm>using namespace std;int main(){ map<int,int> mp; int n; cin>>n; int temp; while(n.

2021-10-02 00:14:06 171

原创 算法题目——Problem A 二进制(北邮机试)

Problem A 二进制题目描述32位二进制数 X ,对其进行X+1,X+3操作,并输出。注意不能忽略前导0。输入第一行,一个整数 T ,代表测试数据组数。接着 T 行,输入32为二进制数输出对每组测试数据。输出两行,第一行为X+1,第二行为X+3.测试样例输入20000000000000000000000000000000000000000000000000000000000000001输出0000000000000000000000000000000100000000000

2021-10-01 23:38:54 166

原创 算法题目——多米诺骨牌问题(POJ-2663)

题目链接:设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放到棋盘上,使得任何两张多米诺牌均不重叠,每张多米诺牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为棋盘被多米诺牌完美覆盖。这是一个简单的排列问题,同学们能够很快构造出许多不同的完美覆盖。但是,计算不同的完美覆盖的总数就不是一件容易的事情了。不过,同学们 发挥自己的聪明才智,还是有可能做到的。输入一次输入可能包含

2021-10-01 21:52:49 1800

CSP代码000000000

CSP代码000000000

2024-03-31

06.机器学习实战-验证.rar

06.机器学习实战-验证

2021-10-16

空空如也

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

TA关注的人

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