随笔分类 - 数据结构与算法分析
摘要:一、问题描述 现在小明有n根火柴棍,希望拼出如 A+B=C 的等式。等式中的A、B、C均是用火柴棍拼出来的整数(若该数非零,则最高位不能是0)。数字0~9的拼法如图所示: 注意: 假如现在小明手上有m根(m ≤ 24)火柴棍,那么小明究竟可以拼出多少个不同的形如 A+B=C 的等式呢? 二、题目分析
阅读全文
摘要:一、游戏规则 你只有一枚炸弹,但是这枚炸弹威力超强(杀伤距离超长,可以消灭杀伤范围内所有的敌人)。请问在哪里放置炸弹才可以消灭最多的敌人? 二、题目分析 我们先将这个地图模型化。墙用#表示,敌人用G表示,空地用 . 表示(当然如果你想换成其他的符号也可以),炸弹只能放在空地上。 首先我们需要用一个二
阅读全文
摘要:一、游戏规则 将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当
阅读全文
摘要:一、问题引入 小明在数学课上遇到一道奥数题是这样的,【】3*6528=3【】*8256,在两个【】内填入相同的数字使得等式成立。 不用分析了,直接show代码: 这就是最简单的枚举算法。 枚举算法的基本思想是:有序地去尝试每一种可能。 二、问题拓展 现在小明又遇到一个稍微复杂一点的奥数题,【】【】【
阅读全文
摘要:一、问题描述 有一串已经从小到大排好序的数2 3 5 8 9 10 18 26 32.现需要往这串数中插入6使其得到的新序列仍符合从小到大的排列。 二、问题分析 我们可以用一个数组data来存储每个序列中的每一个数,再用一个数组right来存放序列中每一个数右边的数是谁。 1 2 3 4 5 6 7
阅读全文
摘要:一、关于栈的介绍 栈是一种后进先出的数据结构,它限定为只能在一端进行插入和删除操作。 比如说有一个小桶,小桶的直径只能放一个小球,我们现在在小桶内依次放入2、1、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。在刚才取小球的过程中,我们最先放
阅读全文
摘要:一、问题引入 小明和小丽同在一个自习室上自习,小明感觉小丽是一个很不错的女孩,于是他鼓足勇气向小丽要QQ号,然而小丽也是个矜持的女孩,当然不会直接告诉他,所以小丽给了小明一串加密过的数字,同时她也告诉小明解密规则:首先将第一个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数放到
阅读全文
摘要:一、最快最简单的排序——桶排序 问题:让计算机随机读入5个数然后将这5个数从大到小输出。 分析:这里只需借助一个一维数组就可以解决这个问题 int a[11],i,j,t; for(i=0;i<=10;i++) a[i]=0; //初始化为0 for(i=1;i<=5;i++) //循环读入5个数
阅读全文
摘要:一、Luhn公式介绍 Luhn公式是一种广泛使用的系统,用于对标识号进行验证。它根据原始标识号,把每隔一个数字的值扩大一倍。然后把各个单独数字的值加在一起(如果扩大一倍后的值为2个数字,就把这两个数字分别相加)。如果相加之后可以被10整除,那么这个标识号就是合法的。 编写一个程序,接受一个任意长度的
阅读全文