![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 91
Allen_BCC
.....
展开
-
老鼠走迷宫抽象版c++
# ifndef MAZE_H# define MAZE_H# include<iostream># include"stack.h"using namespace std;class position{ public: int x; int y;};stack<position> *path;class Maze { public: voi...原创 2019-01-31 15:49:02 · 416 阅读 · 0 评论 -
高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即...原创 2019-02-13 19:38:01 · 105 阅读 · 0 评论 -
高斯日记
题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:534...原创 2019-02-26 12:07:38 · 100 阅读 · 0 评论 -
扑克序列
标题:扑克序列A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。请填写出所有符合要求的排列中,字典序最小的那个。例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。# include<iostream># include<...原创 2019-03-13 23:29:01 · 171 阅读 · 0 评论 -
李白打酒
标题:李白打酒话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbab...原创 2019-03-06 22:37:37 · 316 阅读 · 0 评论 -
堆排序(大顶堆)
# ifndef maxheap# define maxheap# include<iostream>using namespace std;const int capacity=100;class maxHeap{ public: maxHeap() { heap=new int [capacity]; heapsize=0; ...原创 2019-03-16 11:16:53 · 122 阅读 · 0 评论 -
图的建立及遍历(基于邻接矩阵)
# include<iostream># include<cstring># include<queue>using namespace std;const int maxn=100;bool visit[maxn];typedef struct node{int adj;//边之间关系 }arccell; //此处有的教材加了个 adj[m...原创 2019-07-13 19:10:16 · 271 阅读 · 0 评论 -
二叉树的几种存储方式(一个数组,指针形式,两个数组)
用一个数组存储完全二叉树 若一个根节点索引为k,则其左子树索引为2k,右子树索引为2k+1;见下一题 题目来自UVA679# include<iostream># include<cstring>using namespace std;/*input:树的深度 D , the number of balls:ioutput:最后一个小球的位置;节点为0,走...原创 2019-07-13 19:28:56 · 2880 阅读 · 0 评论 -
图的建立与遍历(邻接表)
# include<iostream># include<cstring># include<queue>using namespace std;const int maxn=100;typedef struct arcnode{ int adjvex; //该弧指向顶点位置 struct arcnode* nextarcs; //指向下一...原创 2019-07-14 14:45:07 · 487 阅读 · 0 评论 -
dijkstra求单源最短路径
//集合S:已计算出最短路径的集合//集合V:未计算出最短路径的集合. //从集合V中选出最短路径的顶点,加入集合S中,并利用刚选的最短路径更新V中的最短路径。 # include<iostream># include<cstring># include<stack>using namespace std;# define INF 0x3f3f3f...原创 2019-07-19 17:47:50 · 359 阅读 · 0 评论 -
细胞bfs&&dfs练习
一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:阵列4 100234500067103456050020456006710000000089有44个细胞。【输入】第一行为矩阵的行nn和列mm;下面为一个n×mn×m的矩阵。【输出】细胞个数。【输入样例】4 1002345000...原创 2019-07-19 20:47:32 · 169 阅读 · 0 评论 -
迷宫问题(bfs)
定义一个二维数组:int maze[5][5] = {0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。【输入】一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。【输出】左上角到右下角的最...原创 2019-07-21 15:01:12 · 150 阅读 · 0 评论 -
拓扑排序topological sort (bfs思想)
# include<iostream># include<queue># include<cstring>using namespace std;const int maxn=50;typedef struct node{ int adj; //顶点之间的关系 }node;typedef struct graph{ int verte...原创 2019-07-22 17:41:21 · 285 阅读 · 0 评论 -
拓扑排序邻接表建图(bfs)
# include<iostream># include<queue># include<vector># include<cstring>using namespace std;const int maxn=100+5;//定义弧的数据结构 typedef struct arcnode{ int adjnode; //该弧指向...原创 2019-07-22 21:06:05 · 208 阅读 · 0 评论 -
拓扑排序(dfs)
# include<iostream># include<cstring># include<vector>using namespace std;const int maxn=50;typedef struct node{ int adj; //顶点之间的关系 }node;typedef struct graph{ int vert...原创 2019-07-23 14:52:30 · 1141 阅读 · 0 评论 -
蓝桥杯回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67...原创 2019-02-13 15:00:28 · 148 阅读 · 0 评论 -
huffman思想
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下...原创 2019-02-12 19:50:42 · 192 阅读 · 0 评论 -
括号匹配
# ifndef STACK_H# define STACK_H# include<cstdlib># include<iostream>using namespace std;const int maxsize=100;template<class TT>class stack{ public: stack() { init_st...原创 2019-01-31 18:55:25 · 80 阅读 · 0 评论 -
蓝桥杯 输出数组元素次数最多的元素
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式:输...原创 2019-02-14 20:33:36 · 324 阅读 · 0 评论 -
蓝桥杯 复数的基本运算
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运算符号(+,-,*,/) a b c d. 输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。# ...原创 2019-02-15 17:13:34 · 719 阅读 · 0 评论 -
动态分配多维数组的方法
动态分配多维数组的方法:int n;int **p=new int *[n];for(int i=0;i<n;i++) p[i]=new int [n];//分配n行 //或者 int **p; p=new int * [n]; for(int i=0;i<n;i++) p[i]=new int [n];//为每一行分配n列....原创 2019-01-30 14:23:41 · 702 阅读 · 0 评论 -
判断一个数是否为素数
判断n是否为素数第一思路:用n去整除2~n-1,若不能整除,就是素数。在这里不给出代码第二思路:若一个数n=p*q,那么必定有一个数大于根号n,必有一个数小于根号n.# include&lt;iostream&gt;# include&lt;cmath&gt;using namespace std;bool sushu(int n){ int k=sqrt(n); int i=2...原创 2019-02-09 16:07:43 · 208 阅读 · 0 评论 -
质因数
# include&lt;iostream&gt; # include&lt;cmath&gt;using namespace std;void zys(int n){ cout&lt;&lt;n&lt;&lt;"="; int k=sqrt(n); int i=2; while( i&lt;=k)原创 2019-02-09 17:35:37 · 284 阅读 · 0 评论 -
fj字符串
FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗?输入格式 仅有一个数:N ≤ 26。 规律如下 A(n)=A(n-1)+char(64+n)+A(n-1)当n>1; 当n=1,A(1)=“A”;...原创 2019-02-10 15:13:01 · 323 阅读 · 0 评论 -
矩阵的乘法
需注意的是矩阵的零次幂为单位矩阵;# include<iostream>using namespace std;const int maxsize=30;int main(){ int a[maxsize][maxsize],b[maxsize][maxsize],c[maxsize][maxsize]; int n,m; cin>>n>>m;...原创 2019-02-11 13:48:11 · 193 阅读 · 0 评论 -
矩阵加法
问题描述 给定两个N×M的矩阵,计算其和。其中: N和M大于等于1且小于等于100,矩阵元素的绝对值不超过1000。输入格式 输入数据的第一行包含两个整数N、M,表示需要相加的两个矩阵的行数和列数。接下来2N行每行包含M个数,其中前N行表示第一个矩阵,后N行表示第二个矩阵。输出格式 你的程序需要输出一个NM的矩阵,表示两个矩阵相加的结果。注意,输出中每行的最后不应有多余的空格,...原创 2019-02-11 14:13:50 · 2931 阅读 · 0 评论 -
前缀表达式
编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。 输入格式:输入只有一行,即一个前缀表达式字符串。 输出格式:输出相应的计算结果(如果是除法,直接...原创 2019-02-17 20:49:23 · 168 阅读 · 0 评论 -
蓝桥杯 二元函数
问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值。 只有满足以下要求的表达式才是合法的: 1.任意整数x是一个合法的表达式; 2.如果A和B都是合法的表达式,则f(A,B)也是一个合法的表达式。输入格式 第一行两个数a和b; 第二行一个字符串S表示要求的表达式。输出格式 一行一个数表示表达式S的值。样例输入1 2f(1,f(1,-...原创 2019-02-17 21:26:46 · 849 阅读 · 5 评论 -
2013蓝桥杯 b组 黄金连分数
黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。比较简单的一种是用...原创 2019-02-27 18:40:09 · 411 阅读 · 0 评论 -
删除数组的零元素(或某一元素)
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)53 4 0 ...原创 2019-02-12 17:24:38 · 3258 阅读 · 1 评论 -
拓扑排序(dfs)邻接表建图
# include<iostream># include<queue># include<vector># include<cstring>using namespace std;const int maxn=100+5;//定义弧的数据结构 typedef struct arcnode{ int adjnode; //该弧指向...原创 2019-07-23 15:13:58 · 255 阅读 · 0 评论