[置顶] CCF考试——201612-4压缩编码

概要问题描述  给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。   使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:   L=a1的编码长度×t1+a2的编码...
阅读(67) 评论(0)

剑指offer--矩形覆盖

“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。 图1 六度空间示意图 “六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由于历史...
阅读(321) 评论(0)

创造新世界

众所周知计算机代码底层计算都是0和1的计算,牛牛知道这点之后就想使用0和1创造一个新世界!牛牛现在手里有n个0和m个1,给出牛牛可以创造的x种物品,每种物品都由一个01串表示。牛牛想知道当前手中的0和1可以最多创造出多少种物品。 输入描述: 输入数据包括x+1行:第一行包括三个整数x(2 ≤ x ≤ 20),n(0 ≤ n ≤ 500),m(0 ≤ m ≤ 500),以空格分隔接下来的x行,每...
阅读(831) 评论(0)

最长公共连续子串

牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。 输入描述: 输入为两行字符串(可能包含空格),长度均小于等于50.输出描述: 输出为一个整数,表示最长公共连续子串的长度。输入例子: abcde abgde输出例子: 2PS:这道题不得不说真的很坑,先不说空格也算成字符,连最长公共连续子串这个概念也和刷传统相关题用的概念也一样。代码如下...
阅读(1282) 评论(0)

构造回文

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子: abcda google输出例子: 2 2解题思路: 这题是最长公共子序列的变种,只要找到字符串...
阅读(176) 评论(0)

历届试题 最大子阵

问题描述   给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。  其中,A的子矩阵指在A中行和列均连续的一块。 输入格式   输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。   接下来n行,每行m个整数,表示矩阵A。 输出格式   输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。 样例输入 3 3 -1 -4 3 3 4 -1...
阅读(205) 评论(0)

算法训练 最大的算式

问题描述   题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如:   N=5,K=2,5个数字分别为1、2、3、4、5,可以加成:   1*2*(3+4+5)=24   1*(2+3)*(4+5)=45   (1*2+3)*(4+5)=45...
阅读(292) 评论(0)

2016年腾讯笔试题——构造回文

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子: abcda google输出例子: 2 2解题思路: 其实这是最长公共子序列的变种,先求出原字符...
阅读(235) 评论(0)

算法训练 K好数

问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式 输入包含两个正整数,K和L。输出格式 输出一个整数,表示答案对1000000007取模后的值。...
阅读(185) 评论(0)

POJ2192(Zipper)

DescriptionGiven three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings can be mixed arbitrarily, but eac...
阅读(196) 评论(0)

拦截导弹

描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。 输入 输入有两行, 第一行,...
阅读(246) 评论(0)

POJ1458(最长公共子序列)

DescriptionA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = another sequence Z = is a subseq...
阅读(184) 评论(0)

最长上升子序列

问题描述 一个数的序列ai,当a1 < a2 < … < aS的时候,我们称这个 序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可 以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8), 有它的一些上升子序列,如(1, 7), (3, 4, 8)等...
阅读(165) 评论(0)

关于动态规划

递归到动规的一般转化方法 递归函数有n个参数,就定义一个n维的数组,数组的下标是递归函数参数的取值范围,数组元素的值是递归函数的返回值,这样就可以从边界值开始,逐步填充数组,相当于计算递归函数值的逆过程。...
阅读(189) 评论(0)

POJ 1163(数字三角形)

Description7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at...
阅读(203) 评论(0)

算法提高 概率计算

问题描述   生成n个∈[a,b]的随机整数,输出它们的和为x的概率。 输入格式   一行输入四个整数依次为n,a,b,x,用空格分隔。 输出格式   输出一行包含一个小数位和为x的概率,小数点后保留四位小数 样例输入 2 1 3 4 样例输出 0.3333 数据规模和约定   对于50%的数据,n≤5.   对于100%的数据,n≤100,b≤100.   import...
阅读(162) 评论(0)

算法提高 01背包

问题描述   给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式   输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。   以后N行每行两个数Wi和Vi,表示物品的重量和价值 输出格式   输出1行,包含一个整数,表示最大价值。 样例输入 3 5 2 3 3 5 4 7 样例输出...
阅读(168) 评论(0)
    个人资料
    • 访问:110352次
    • 积分:4380
    • 等级:
    • 排名:第7577名
    • 原创:321篇
    • 转载:0篇
    • 译文:0篇
    • 评论:71条
    博客专栏
    最新评论