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