- 博客(20)
- 资源 (1)
- 问答 (4)
- 收藏
- 关注
原创 归并排序的C实现
两个有序数组进行合并,即将两数组中第一个数进行比较,小的数移入temp数组中,再进行比较,直到一个数组为空,将另一个数组全部转移即可。temp数组中即为两个数组合并后的有序数列。 归并排序是将数组不断的二分直到两个1个数的有序数组为止,然后通过递归,将有序数组慢慢扩大,直到整个数组有序为止。 原理可以看这个网址:https://visualgo-translation.club/zh/sort
2017-03-30 22:41:42
479
原创 八皇后问题(回溯)
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 可设置一个数组a[i]=j,代表第i行第j列放置棋子。先按行从上往下的顺序,每递归一次,在每一行的某一列放一个棋子。放置后检测列和对角线即可。 #include int a[8]={0}; int s
2017-03-26 20:53:29
608
原创 蓝桥杯 密码脱落
X星球的考古学家发现了一批古代留下来的密码。 这些密码是由A、B、C、D 四种植物的种子串成的序列。 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。 由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。 你的任务是: 给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。
2017-03-23 17:16:22
930
原创 堆排序
先建立堆结构,在从下往上对每一个点进行调整。具体原理可以参照一个网站: https://visualgo-translation.club/zh #include //堆排序从大到小 void swap(int a[],int x,int y) { int temp; temp=a[x]; a[x]=a[y]; a[y]=temp; } void insert(i
2017-03-19 22:54:09
344
原创 利用dfs输出全排列
#include #define N 5 //N个数 int color[N]={0}; int num[N]={1,2,3,4,5}; int temp[N]={0}; int sum=0; void dfs(int depth) { int i; if(depth>=N) { for(i=0;i<N;i++) { printf("%d ",temp[i]); }
2017-03-14 10:18:52
438
原创 邻接表的创建与输出(C语言)
邻接表是图的常用储存结构之一,它很好的解决了邻接矩阵占用空间较大的问题。 邻接表用到了两个结构体,一个是顶点表,包括点的序号和连接此起点的第一条边。一个是边表,包括连接此边的终点和对应之前起点的下一条边。 初始化邻接表时,先将定点表赋值,并把指针指向NULL。再将输入的数据插入,插入到起点所对应的边表的最后一个。最后是每个点对应一个链表,头结点为起点,之后的结点为这个起点所连接的边。
2017-03-09 16:20:47
12355
4
原创 蓝桥杯 危险系数
问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,
2017-03-01 22:20:04
1671
原创 算法 操作二叉查找树
参考《数据结构与算法分析》 二叉查找树的建立: typedef struct binary_tree_ { int data; struct binary_tree_ *left; struct binary_tree_ *right; }binary_tree; //这里binary_tree = struct binary_tree_ 二叉查找树创建一个根节点:
2017-03-01 13:15:27
376
原创 蓝桥杯 剪格子
问题描述 如下图所示,3 x 3 的格子中填写了一些整数。 +--*--+--+ |10* 1|52| +--****--+ |20|30* 1| *******--+ | 1| 2| 3| +--+--+--+ 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。 本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为
2017-03-01 12:34:38
265
原创 蓝桥杯 幸运数
问题描述 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成 。 首先从1开始写出自然数1,2,3,4,5,6,.... 1 就是第一个幸运数。 我们从2这个数开始。把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 .... 把它们缩紧,重新记序,为: 1 3 5 7 9 .... 。这时,3为第2个幸运数,然
2017-02-25 22:53:11
523
原创 蓝桥杯 大臣的旅费
问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。 J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地
2017-02-21 21:13:08
306
原创 蓝桥杯 买不到的数目
问题描述 小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字
2017-02-18 22:56:23
285
原创 蓝桥杯 连号区间数
问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮
2017-02-17 20:09:19
255
原创 蓝桥杯 翻硬币
问题描述 小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
2017-02-15 21:05:53
243
原创 蓝桥杯 错误票据
问题描述 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。 输入格式 要求程序首先输
2017-02-14 22:38:26
309
原创 蓝桥杯 带分数
问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 还可以表示为:100 = 82 + 3546 / 197。 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 从标准输入读入一个正整数N (N 输出格式 程序输出该数字用
2017-02-10 22:40:53
252
原创 蓝桥杯 打印十字图
问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.
2017-02-08 21:29:15
368
原创 蓝桥杯 K好数
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。 输入格式 输入包含两个正整数,K和L。 输出格式 输出一个整数
2017-02-05 23:14:16
309
原创 蓝桥杯 十六进制转换为八进制
要求:输入长度不超过100000的几个十六进制,将其转换为八进制。 最简单的做法,将十六进制转化为二进制的BCD码,然后再将BCD码转换为八进制。注意十六转BCD一位十六进制对四位二进制,BCD转八进制三位二进制对一位八进制。 这里用了二维数组。 #include #include #include int b[10],c[10]; char a[10][100000];//输入的几个十六
2017-02-02 17:24:06
1082
原创 蓝桥杯 按从小到大输出长度为5的二进制串
输出样例为 00000 00001 00010 ........... 11111 这里利用数组存取 #include int main(void) { int a[5],*p,i,j; for(j=0;j<5;j++) { a[j]=0; } for(j=4;j>=0;j--) { printf("%d",a[j]); } printf("\n"
2017-01-27 11:08:44
501
关于learning opencv这本书的源码
2017-11-18
关于python的文件读取
2017-05-11
关于邻接表的建立与输出
2017-03-08
C语言关于二叉查找树的插入
2017-02-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅