数据结构
数据结构
芒果和小猫
图形图像工程师
展开
-
[数据结构 & 算法] codevs1475m进制转10进制
#include #include #include using namespace std;string n;int m;int sum=0;int main(){ cin >> n >> m; for (int i = 0; i < n.length(); ++i) { if (n[i]原创 2017-10-29 11:10:07 · 217 阅读 · 0 评论 -
[数据结构 & 算法] codevs1212求A,B的最大公约数
#include #include using namespace std;int main() { long long a, b; long long temp; cin >> a>>b; temp = 1; for (int i=2;i原创 2017-10-28 22:09:06 · 381 阅读 · 0 评论 -
[数据结构 & 算法] codevs1501 二叉树最大宽度和高度
给出一个二叉树,输出它的最大宽度和高度。输入描述Input Description第一行一个整数n。下面n行每行有两个数,对于第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号。如果没有某个儿子为空,则为0。输出描述Output Description输出共一行,输出二叉树的最大宽度和高度,用一个空格隔开。原创 2017-10-29 11:12:43 · 190 阅读 · 0 评论 -
[数据结构 & 算法] codevs1012 最大公约数和最小公倍数问题
题目描述Description输入二个正整数x0,y0(2条件: 1.P,Q是正整数2.要求P,Q以x0为最大公约数,以y0为最小公倍数.试求:满足条件的所有可能的两个正整数的个数.输入描述Input Description二个正整数x0,y0输出描述Output Description满足条件的所有可能的两个正整原创 2017-10-29 11:35:27 · 374 阅读 · 0 评论 -
[数据结构 & 算法] codevs1160-蛇形矩阵(螺旋矩阵)
小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和.输入描述Input Descriptionn(即n行n列)输出描述Output Descriptionn+1行,n行为组成的矩阵,最后一原创 2017-10-28 21:52:52 · 645 阅读 · 0 评论 -
[数据结构 & 算法] 2016年第七届蓝桥杯C/C++A组第三题---方格填数
在练习算法的时候,看见了这个题,利用递归回溯的方法,解开了这个题问题描述:方格填数如下的10个格子填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。以上就是问题的描述原创 2017-10-13 20:45:43 · 2393 阅读 · 6 评论 -
[数据结构 & 算法] 2016年第七届蓝桥杯C/C++A组第六题---寒假作业
寒假作业问题描述:现在小学的数学题目也不是那么好玩的。看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复。比如:6 + 7 = 139 - 8 = 13 * 4 = 1210 / 2 = 5原创 2017-10-15 19:03:03 · 451 阅读 · 0 评论 -
[数据结构 & 算法] 组合数个数
顺手打的组合数个数求解,改改可以有别的用途#include #include#include using namespace std;int n,m;int counter = 0;int visited[100];void A(int x,int y){ if (x==m) { counter++; return; } for (int i=y;i原创 2017-10-29 22:01:53 · 223 阅读 · 0 评论 -
[数据结构 & 算法] codevs1214 线段覆盖
题目描述Description 给定x轴上的N(0输入描述Input Description 输入第一行是一个整数N。接下来有N行,每行有二个空格隔开的整数,表示一条线段的二个端点的坐标。输出描述Output Description 输出第一行是一个整数表示最多剩下的线段数。样例输入Sam原创 2017-11-01 09:35:55 · 372 阅读 · 0 评论 -
[数据结构 & 算法] N皇后问题
N皇后问题解释在代码里已经写的很清楚了,就不赘述了#include #include using namespace std;int N;//皇后的个数int qpostion[100];//存储皇后的位置,第i行的皇后在第j列,这个j就存在qpostion[i]里,i是数组的索引void Nqueen(int k);int m = 0;//记录方案次数int m原创 2017-10-05 15:46:10 · 322 阅读 · 0 评论 -
[数据结构 & 算法] codevs1011 数的计算
题目描述Description我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n1.不作任何处理;2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.输入描述Input Description原创 2017-10-29 11:33:12 · 293 阅读 · 0 评论 -
[数据结构 & 算法] 2015蓝桥杯A组C/C++第一题方程整数解
方程整数解方程: a^2 + b^2 + c^2 = 1000这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。你能算出另一组合适的解吗?请填写该解中最小的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。没有什么算法,数量很小,枚举即可#include using namespace std;//逐个枚举即可,原创 2017-10-21 21:29:33 · 504 阅读 · 0 评论 -
[数据结构 & 算法] codevs1294全排列
题目描述Description给出一个n, 请输出n的所有全排列输入描述Input Description读入仅一个整数n (1输出描述Output Description一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。样例输入Sample Input3原创 2017-10-29 16:05:28 · 324 阅读 · 0 评论 -
[数据结构 & 算法] 2015蓝桥杯A组C/C++第六题牌型种数
#include using namespace std;int counter = 0;//用来计数void dfs(int a,int b)//a代表牌的点数,b代表已经拿去的牌的总数{ if (b==13)//如果拿的牌的总数为13,那么计数增加并返回 { counter++; return; } if (b > 13) return;//如果超过13,直接返回 i原创 2017-10-20 11:00:05 · 678 阅读 · 0 评论 -
[数据结构 & 算法] codevs1116 四色问题
给定N(小于等于8)个点的地图,以及地图上各点的相邻关系,请输出用4种颜色将地图涂色的所有方案数(要求相邻两点不能涂成相同的颜色)数据中0代表不相邻,1代表相邻输入描述Input Description第一行一个整数n,代表地图上有n个点接下来n行,每行n个整数,每个整数是0或者1。第i行第j列的值代表了第i个点和第j个点之间是相邻的还是不相邻,相邻就是1,不原创 2017-10-29 16:22:45 · 732 阅读 · 0 评论 -
[数据结构 & 算法] codevs3143二叉树的序遍历
题目描述Description求一棵二叉树的前序遍历,中序遍历和后序遍历输入描述Input Description第一行一个整数n,表示这棵树的节点个数。接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。输出描述Output Description输出一共三行,分别为前序遍历原创 2017-10-28 21:57:43 · 215 阅读 · 0 评论 -
[数据结构 & 算法] 2015蓝桥杯A组C/C++第八题
#include using namespace std;int counter=0;//喝的饮料数int k = 0;//盖子数int n;//最开始买的饮料数void main() { cin >> n;//输入买的饮料 counter += n; k = n; while (k>=3) { counter += k / 3;//换购饮料 k = k / 3 +原创 2017-10-20 11:22:32 · 198 阅读 · 0 评论 -
[数据结构 & 算法] 2015年蓝桥杯A组C/C++第三题奇妙的数字
奇妙的数字小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。你能猜出这个数字是多少吗?请填写该数字,不要填写任何多余的内容。这题我用字符串处理的方法来做的。因为数量不大,首先估计了一下当数字超过99时,立方和平方的位数超过了10,不符合条件,当数字低于47时,位数和不满10,所以数据的范围为47到99.接着思路是,开辟一个visit原创 2017-10-21 21:56:34 · 2061 阅读 · 0 评论 -
[数据结构 & 算法] codevs1083 Cantor表(类似于蛇形矩阵吧)
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…输入描述Input Descript原创 2017-10-29 10:54:24 · 3613 阅读 · 0 评论 -
[数据结构 & 算法] 2018网易校招内推--彩色砖块
时间限制:1秒空间限制:32768K小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式原创 2017-11-12 19:18:11 · 214 阅读 · 0 评论 -
[数据结构 & 算法] 迪杰斯特拉算法(Dijkstra算法)
#include&lt;iostream&gt; #include&lt;memory.h&gt;#include&lt;stack&gt;#include&lt;string&gt;#include&lt;cmath&gt;#include&lt;map&gt;#include&lt;a原创 2018-03-29 17:29:11 · 333 阅读 · 0 评论 -
[数据结构 & 算法] codevs1018单词接龙
1018 单词接龙2000年NOIP全国联赛普及组NOIP全国联赛提高组时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题解题目描述Description 单词接龙是一个与我们经常玩的成语接龙相类似的游戏原创 2017-11-14 20:55:15 · 276 阅读 · 0 评论 -
[数据结构 & 算法] codevs1506传话
题目描述Description一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人。如果a认识b,b不一定认识a。所有人从1到n编号,给出所有“认识”关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1。输入描述Input Description第一行是n和m,表示人数和认识原创 2017-12-12 11:37:24 · 337 阅读 · 0 评论 -
[数据结构 & 算法] 2017年第八届蓝桥杯C/C++A组第二题---跳蚱蜢
跳蚱蜢 有9只盘子,排成1个圆圈。 其中8只盘子内装着8只蚱蜢,有一个是空盘。 我们把这些蚱蜢顺时针编号为 1~8 每只蚱蜢都可以跳到相邻的空盘中, 也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。 请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列, 并且保持空盘的位置不变(也就是1-8换位,2-7换位,…),至少要经过多少次跳跃? 注意:要求提交的是一个整数,请不要填写任...原创 2018-03-27 16:53:05 · 2528 阅读 · 1 评论 -
[数据结构 & 算法] 未名湖边的烦恼
未名湖边的烦恼这是蓝桥网上的一道题 问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式原创 2017-12-15 11:37:38 · 218 阅读 · 0 评论 -
[数据结构 & 算法] Floyd算法
Floyd算法的核心部分,k是中继节点,i和j分别代表出发点和终点,简单的来说就是 i->j和i->k->j哪个距离更短,则更新d[i][j]的数值,d[i][j]代表从i出发到j的最小路径长度 for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++...原创 2018-03-30 08:54:54 · 184 阅读 · 0 评论 -
[数据结构 & 算法] codevs1045回文数
1045 回文数#include #include#include #includeusing namespace std;string sp="0123456789ABCDEF";//为了不用从int转字符而定义的的string, 相同的数字就能对应相应的字符 string add(string a,string b,int N){ string result = "";原创 2018-02-04 14:26:00 · 155 阅读 · 0 评论 -
[数据结构 & 算法] 深度优先搜索(DFS)
深度优先搜索(Depth-First-Search) 从起点出发,走过的点要做标记,发现没有走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”1.判断从V出发是否能走到终点int main(){ 将所有点标记为新点 起点 = 1; 终点 = 8; cout<<Dfs(起点);}bool Dfs(...原创 2018-04-11 10:21:07 · 311 阅读 · 0 评论 -
[数据结构 & 算法] 后缀表达式的值计算
1、栈栈是一种只允许一端操作的线性数据结构,具有LIFO(last in first out)的特点,具有广泛的应用。现在打算用栈结构来实现后缀表达式的计算。2、后缀表达式 后缀表达式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则)。例如 5+(2+3)*4 转换为后缀表达式为 523+4*+...原创 2018-04-11 10:22:35 · 1298 阅读 · 0 评论 -
[数据结构 & 算法] DFS非递归写法
#1、介绍从根结点开始,彻底搜索每一个分支直到它们的最深处,然后再返回到先前未搜索过的分支(搜索顺序。搜索过程中遇到的结点保存在一个后进先出队列(LIFO,即堆栈)中,该队列将会被再次访问。下面是例子#2、代码#include&amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;lt;stack&amp;amp;amp;amp;gt;#in原创 2018-05-09 20:21:46 · 4547 阅读 · 0 评论 -
[数据结构 & 算法] A*算法--罗马尼亚度假问题(实验课作业)
问题表述利用A*算法找到从A城市到B城市的最短路径,以及代价,其中A*算法中的h也就是从当前点到目标点的距离已经给出。 作为人工智能课程实验课的题目,给的帮助代码是纯C语言写的,连容器都是以头文件形式提供的,表示十分不能理解。以下是我用C++完成的实验代码,为了方便,所以定义都集中在一个cpp文件里 代码部分注释已经很详细了#include<iostream>...原创 2018-04-27 21:19:28 · 13365 阅读 · 3 评论 -
[数据结构 & 算法] 遗传算法解决旅行商问题(TSP)(实验课)
问题描述在旅行商问题中,给定一组城市及每座城市与其他城市之间的旅行成本,目标是找出一条经过所有城市的路径,要求该路径只经过每座城市一次并且旅行总成本最低。从任意一座城市出发,经过每一座城市之后,再回到出发城市结束旅行。 课上给的距离矩阵,可能是疏忽9到3和3到9的距离不一致,但这不妨碍程序设计代码部分#include<iostream>#include<...原创 2018-05-11 19:25:55 · 5613 阅读 · 2 评论 -
[数据结构 & 算法] 最小生成树算法Kruskal和Prim算法
复习的时候,在网上找到了不错的图解,保存一下,以便日后复习KruskalPrim出处:http://blog.csdn.net/luoshixian099/article/details/51908175转载 2018-07-04 20:37:08 · 169 阅读 · 0 评论 -
[数据结构 & 算法] C语言实现栈容器
1、栈栈的核心思想就是,先入后出,作为复习,我决定用C语言实现一下栈的基本操作Init 初始化Destroy 销毁Clear 清除Length 获得栈的长度Empty 是否为空Top 取栈顶元素Pop 出栈Push 入栈Iterator 对栈进行遍历想清楚栈顶指针的位置,以及栈空间不够时要增加栈空间,其他方面都不是很复杂,直接贴代码,有简单注释//Stack.h//a...原创 2018-10-21 22:02:15 · 821 阅读 · 0 评论 -
[数据结构 & 算法] DFS和BFS
1、简析DFS和BFS1.1 深度优先搜索(Depth First Search)深度优先搜索简称DFS,顾名思义,DFS算法的核心是,尽管向前走,每次访问为已标记状态,当和自己相邻的点都被访问后,退回上一个点,再寻找可以走的点,直到把所有的点都遍历一遍,搜索结束。下面举个例子:![用例](https://img-blog.csdnimg.cn/20181105215738865.JPG?...原创 2018-11-06 20:15:37 · 345 阅读 · 0 评论 -
[数据结构 & 算法] 二叉树的建立,遍历,求叶子
1.简析二叉树1.1 定义二叉树的定义网上一搜就有,简而言之,是每个节点最多只有两个孩子节点,左边的节点是左孩子,右边的节点是右孩子。1.2 本文简单实现的二叉树算法二叉树的构建先序遍历中序遍历后序遍历求叶子节点1.3测试用例图1. 用例2.代码#include &lt;iostream&gt;using namespace std;class Node{...原创 2018-11-06 21:46:20 · 420 阅读 · 0 评论 -
[数据结构 & 算法] 括号匹配算法
1.栈简单来说,栈就是这样一个结构,类似一口井,所有元素被放进井里,最后放进去的元素,最后才能出来,所以栈就是一个先入后出的数据结构。2.栈的应用,括号匹配在表达式中,经常会出现括号,或者当我们在使用编译器的时候,会帮我们检查语法错误,其中括号匹配就是其中一项。基于这样一个算法,我们可以实现括号匹配。如果遇到左括号,入栈,遇到右括号,则比较栈顶元素和此右括号是否匹配,若匹配则出栈,继续操作...原创 2018-11-07 14:41:02 · 1668 阅读 · 0 评论 -
[数据结构 & 算法] 二叉树的非递归根据先序序列建立
1. 二叉树非递归根据先序序列建立比较简单的是二叉树递归的创建方法而非递归创建想起来有点难度,本质上是模拟函数栈的操作,所以要用到栈这一数据结构。C++用到了STL里的栈,所以不用自己定义,而C语言需要自己定义栈容器,我用的是我之前写的栈容器稍加修改2. C++代码#include <iostream>#include <stack>#include <s...原创 2018-11-22 09:41:12 · 1761 阅读 · 4 评论 -
[数据结构 & 算法] 字符串模式匹配的KMP算法
关于字符串匹配模式的KMP算法的理解原创 2017-03-19 00:50:32 · 495 阅读 · 0 评论 -
[数据结构 & 算法] 已知二叉树的中序和前序序列(或后序)求解树
转载自:http://www.cnblogs.com/bmrs/archive/2010/08/19/SloveTree.html这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有...转载 2017-05-03 21:13:03 · 1342 阅读 · 0 评论