![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 56
C/C++算法训练
Sunny_范
这个作者很懒,什么都没留下…
展开
-
算法15——动态规划专题
文章目录一、动态规划的递归和递推写法1、递归写法2、递推写法3、分治、贪心与动态规划二、最大连续子序列和一、动态规划的递归和递推写法动态规划: 将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解。需要注意的是,动态规划会将每个求解过的子问题的解记录下来,这样当下一次碰到同样的子问题的时候就可以不用重复计算。1、递归写法以斐波拉契数列为例:int F(int n){ if(n == 0 || n == 1) return 1; else原创 2022-02-19 18:20:41 · 1089 阅读 · 0 评论 -
DFS、BFS遍历图(领接矩阵、邻接表)
一、DFS遍历图(领接矩阵存储)#include<cstdio.h>const int MAXV = 1000;//最大定点数const int INF = 1000000000;//设置INF为一个很大的数int n,G[MAXV][MAXV];//n为顶点数bool vis[MAXV]={false};//如果顶点i被访问,则为truevoid DFS(int u , int depth){ vis[u] = true; //如果需要对顶点u进行操作,可以在这里原创 2022-02-12 11:47:59 · 1116 阅读 · 0 评论 -
算法14——patA1020 根据二叉树的后序和中序遍历求出该二叉树的层序遍历
题目描述: 假设二叉树中的所有键都是不同的正整数。给定后序和中序遍历序列,你应该输出相应二叉树的层序遍历序列。输入格式: 每个输入文件包含一个测试用例。对于每种情况,第一行给出一个正整数N(≤30),即二叉树中的节点总数。第二行给出后序序列,第三行给出中序序列。一行中的所有数字用一个空格隔开。输出格式: 对于每个测试用例,在一行中打印相应二叉树的层次顺序遍历序列。一行中的所有数字必须用一个空格隔开,并且行尾不能有多余的空格。样例输入:72 3 1 5 7 6 41 2 3 4 5 6原创 2022-02-10 14:35:03 · 706 阅读 · 0 评论 -
算法13——求解走出迷宫最小步数(队列实现BFS问题)
问题描述: emsp;给定一个n*m大小的迷宫,其中 * 代表不可通过的墙壁,.代表平底,S表示起点,T代表终点。移动过程中,如果当前位置是(x,y)(下标从0开始),且每次只能前往上下左右(x+1,y)(x-1,y),(x,y+1),(x,y-1)四个位置的平地,求S到T的最小步数。......*.*..*S*..***....T*上述案例中,S为(2,2),T为(4,3)思路: 由于求的是最小步数,而BFS是通过层次的顺序来遍历的,因此可以从S开始记录遍历的层数,那么在到达T时层数原创 2022-02-10 10:02:57 · 1104 阅读 · 0 评论 -
算法12——背包问题(DFS)
问题描述: 有n件物品,每件物品的重量为w[i],价值为c[i]。现在需要选出若干件物品放入一个容量为V的背包中,使得在选入背包的物品总重量不得超过V的前提下,让背包中物品的价值之和最大,求最大价值。(1<=n<=20)分析: 对于每件物品,都有选或者不选两种选择。每次都要对物品做出选择,因此DFS参数中需要记录当前处理的物品编号index。题中涉及了物品的重量和价值,因此也要有参数记录在处理这个物品之前,背包中物品的总重量sumW和总价值sumCvoid DFS(int index原创 2022-02-09 23:27:48 · 746 阅读 · 0 评论 -
算法11——patA1032寻找公共节点(静态链表的使用、静态链表解题步骤总结)
一、算法题目描述:要存储英语单词,一种方法是使用链表,一个字母一个字母地存储一个单词。为了节省一些空间,如果单词共享相同的后缀,可以让它们共享相同的子列表。例如,加载和正在加载的存储方式如图1所示。您应该找到公共后缀的起始位置(例如,图1中i的位置)。输入格式:每个输入文件包含一个测试用例。对于每种情况,第一行包含两个节点地址和一个正整数N(≤10^5),其中两个地址是这两个单词的第一个节点的地址,N是节点总数。节点地址为5位正整数,NULL用−1表示。接下来N行,每一行描述一个节点,格式如下:原创 2022-02-09 18:49:22 · 632 阅读 · 0 评论 -
算法10——c++实现中缀表达式计算
题目描述: 读入一个只包含+,-,x,/的非负整数计算表达式,计算该表达式的值输入格式: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不用输出输出格式: 对每个测试用例输出一行,即该表达式的值,精确到小数点后两位样例输入:30/90-26+97-5-6-13/88*6+51/29+79*87+57*920样例输出:12178.21思路:中缀表达式转后缀表达式对后原创 2022-02-07 16:32:32 · 1857 阅读 · 1 评论 -
C++标准模板库(STL)——queue、priority_queue、stack、pair、algorithm头文件下的常用函数
文章目录一、queue二、priority_queue一、queuequeue为队列,具有先进先出的特性。使用queue,需要添加#include< queue >和using namespace std;1、queue的定义:queue<typename> name;//typename可以是任意基本数据类型或容器queue元素的访问:由于queue本身就是一种先进先出的限制性数据结构,所以STL只能够提供front()来访问队首元素,用back()来访问队尾元素原创 2022-02-07 14:50:36 · 1301 阅读 · 0 评论 -
C++标准模板库(STL)——vector、set、string、map
文章目录一、vector二、set三、string四、map一、vectorvector是“长度根据需要而自动改变的数组”。在算法中,有时会碰到使用普通数组就会超内存的情况,这种情况下可以使用vector数组。另外,vector数组还可以用来以邻接表的方式存储图,这对于无法使用邻接矩阵、又害怕使用指针实现邻接表的题目是非常友好的。使用vector,需要添加头文件#include< vector >。除此之外,还要添上一句“using namespace std”。1、vector的定义原创 2022-02-06 16:59:19 · 1039 阅读 · 0 评论 -
算法09——patA1033 加油站问题(贪心)
问题描述: 已知起点与终点的距离为D,油箱的最大油量为Cmax,单位汽油能够支持前进Davg,给定N个加油站的单位油价和离起点的距离(所有加油站都在一条线上),汽车初始时刻处于起点位置,油箱为空,且可以在任意加油站购买任意量的汽油(前提是不超过油箱容量),求从起点到终点的最小花费。如果无法到达终点,则输出能够行驶的最远距离。输入格式: 第一行输入四个正整数,分别为Cmax(<=100)、D(<=30000)、Davg(<=20)、N(<=500),紧接着N行分别给出N个加油原创 2022-02-02 13:52:23 · 1015 阅读 · 0 评论 -
算法08——patB旧键盘打字(散列)
题目描述: 旧键盘上有几个键坏了,于是在输入一段文字时,对应的字符就不会出现。现在给出应该输入的一段文字以及坏掉的那些键,结果出现的文字会是怎样?输入格式: 在两行中分别给出坏掉的那些键以及该输入的文字。其中对应英文字母的坏键以大写字母给出。每段文字是不超过10^5个字符的串。可用字符包括[a ~ z ,A ~ Z]、数字0~9、下划线"_“代表空格,”,",".","-",以及"+"(上档键)。题目保证第二行输入的字符串非空。注意:如果上档键坏了,那么大写的英文字母将无法出现。输出格式:原创 2022-01-31 21:34:27 · 532 阅读 · 0 评论 -
算法07——patA1080 研究生入学
题意: 有N位考生,M所学校,每位考生都有K个志愿学校,每个学校也有招生人数限制。现在给出所有考生的初试成绩GE,面试成绩GI以及K个志愿学校的编号,要求模拟学校录取招生的过程,并给出每个学校录取的考生编号(按从小到大排序)。下面是录取规则:先按考生的总分(GE+GI)/2从高到低排序,总分相同的按照GE从高到低排序。如果仍然相同,则按相同排名处理按排名先后顺序考虑每个考生最终录取的学校。对每个考生,按K个志愿先后顺序考虑:如果当前志愿学校的已招生人数未到达该校的招生人数...原创 2022-01-31 20:18:37 · 364 阅读 · 0 评论 -
算法06——patA1016电话账单问题(配对排序求和)
题目描述: 给出24h中每个小时区间的资费(cents/minute),并给出N个通话记录点,每个通话记录点都记录了姓名、当前的时刻(月:日:时:分)以及其属于通话开始(on-line)或是通话结束(off-line)。现在需要对每个人的有效通话记录进行资费计算,有效通话记录是指同一个用户能够配对的所有on-line和off-line,且这样配对需要满足:在按时间顺序排列后,两条配对的on-line和off-line对应的时间内不允许出现其他的on-line和off-line的记录。输出要求: 按原创 2022-01-24 19:09:18 · 241 阅读 · 0 评论 -
算法05——PATA1073/PATB1024科学计数法
C语言算法,字符串处理,科学计数法,pat考试原创 2022-01-21 16:37:24 · 336 阅读 · 0 评论 -
算法04——PATB1028人口普查(结构体)
patB 算法 结构体原创 2022-01-19 16:48:27 · 80 阅读 · 0 评论 -
算法03——PATA1042 Shuffing Machine
pata1042洗牌原创 2022-01-17 22:45:49 · 155 阅读 · 0 评论 -
算法02——字符串分割
C语言字符串分割原创 2022-01-17 16:54:03 · 642 阅读 · 0 评论 -
算法01——日期处理
C语言算法 日期处理 闰年平年判断原创 2022-01-17 13:32:29 · 521 阅读 · 0 评论