摘要:
排列组合介绍 排列,就是指从给定n个数的元素中取出指定m个数的元素,进行排序。 组合,则是指从给定n个数的元素中仅仅取出指定m个数的元素,不考虑排序。 全排列(permutation) 以数字为例,全排列就是从“第一个数字”起,“每个数字”分别与它“后面的数字”交换,复杂度为O(n!) 图示: 1. 阅读全文
摘要:
贪心算法 贪心算法:只顾眼前的苟且。 即在对问题求解时,总是做出在当前看来是最好的选择 如买苹果,专挑最大的买。 最优装载问题——加勒比海盗 货物重量:Wi={4,10,7,11,3,5,14,2} 海盗船载重:C 求如何拿货件数最多 阅读全文
摘要:
问题描述: 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨 阅读全文
摘要:
求整数除法小数点后第n位开始的3位数 位数不足的补0,如0.125小数第3位后三位:0.12500→500 输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置 输出格式:3位数字,a÷b小数后第n位开始的3位数字 样例: 输入:1 8 1 输出:125 输入1 8 3 输出:50 阅读全文
摘要:
Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn 1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。 阅读全文
摘要:
快速排序(18JavaB5,9’) 以下代码可以从数组a[]中找出第k小的元素。 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。 请仔细阅读分析源码,填写划线部分缺失的内容。 2018JavaB组第5题的参考答案+注释如下所示: 阅读全文
摘要:
选美大赛 在选美大奖赛的半决胜赛现场,有一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当半决决赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。例如: 选手序号: 1,2,3,4,5,6,7 选手得分: 5, 阅读全文
摘要:
剪邮票(16JavaB10) 如【图1】, 有12张连在一起的12生肖的邮票。 现在你要从中剪下5张来,要求必须是连着的。 (仅仅连接一个角不算相连) 比如,【图2】,【图3】中,粉红色所示部分就是合格的剪取。 请你计算,一共有多少种不同的剪取方法。 问题分析 按题目,从1开始计数的话: | 同行: 阅读全文
摘要:
压缩变换(16JavaB9) 小明最近在研究压缩算法。 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。 然而,要使数值很小是一个挑战。 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个 阅读全文
摘要:
回文数、维密、约瑟夫环 回文数 问题描述: 123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。 输入格式: 输入一行,包含一个正整数n。 输出格式: 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例 阅读全文