
数据结构与算法之编程题
I Du
这个作者很懒,什么都没留下…
展开
-
1-2:字符串插入
总时间限制: 1000ms 内存限制: 65536kB描述有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的'\0'。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。输入输入包括若干行,每一行为一组测试数据,格式为str substr输出对于每一组测试数据,输出插转载 2013-11-07 17:42:15 · 993 阅读 · 0 评论 -
4-1:二叉树的操作
总时间限制: 1000ms 内存限制: 65535kB描述给定一棵二叉树,在二叉树上执行两个操作:1. 节点交换把二叉树的两个节点交换。2. 前驱询问询问二叉树的一个节点对应的子树最左边的节点。输入第一行输出一个整数t,代表测试数据的组数。对于每组测试数据,第一行输入两个整数n m,n代表二叉树节点的个数,m代表操作的次数转载 2013-11-12 21:35:19 · 1994 阅读 · 0 评论 -
3-4:前缀中的周期
总时间限制: 3000ms 内存限制: 65536kB描述一个字符串的前缀是从第一个字符开始的连续若干个字符,例如"abaab"共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i 大于1)的前缀,是否由重复出现的子串A组成,即 AAA...A (A重复出现K转载 2013-11-12 21:22:53 · 1954 阅读 · 0 评论 -
3-3:古代密码
总时间限制: 1000ms 内存限制: 65536kB描述古罗马帝王有一个包括各种部门的强大政府组织。其中有一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。 替换方法是将所有出现的字符替换成其它的字符。有些字符会碰巧替换成它自己。例如:替换规则可以是将'A' 到 'Y'替换成它的下一个字符,将'Z'替换成转载 2013-11-12 21:21:42 · 952 阅读 · 0 评论 -
3-1:统计字符数
总时间限制: 1000ms 内存限制: 65536kB描述判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空输出n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是转载 2013-11-12 21:14:26 · 1254 阅读 · 0 评论 -
2-3:stack or queue
总时间限制: 1000ms 内存限制: 65535kB描述栈和队列都是常用的线性结构,它们都提供两个操作:Push:加入一个元素。Pop:弹出一个元素。不同的是,栈是”先进后出”,而队列则是”先进先出”。给出一个线性结构的进出顺序,判定这个结构是栈还是队列。输入第一行输入一个整数t,代表有t组测试数据对于每组测试数据转载 2013-11-07 18:29:12 · 898 阅读 · 0 评论 -
1-1:多项式加法
总时间限制: 1000ms 内存限制: 5000kB描述 我们经常遇到两多项式相加的情况,在这里,我们就需要用程序来模拟实现把两个多项式相加到一起。首先,我们会有两个多项式,每个多项式是独立的一行,每个多项式由系数、幂数这样的多个整数对来表示。如多项式2x20- x17+ 5x9- 7x7+ 16x5+ 10x4 + 22x2- 15对应的表达式为:2转载 2013-11-07 17:26:14 · 1622 阅读 · 0 评论 -
2-1:用队列对扑克牌排序
总时间限制: 1000ms 内存限制: 65536kB描述假设这里有36张扑克牌,分别为A1~A9,B1~B9,C1~C9,D1~D9,其中A代表方片,B代表草花,C代表红桃,D代表黑桃,那么,设定如下的排序规则:1.对于两张卡牌,X1Y1与X2Y2,X1与X2表示A~D,Y1与Y2表示1~9,如果X1与X2不同,那么依照D>C>B>A的方式进行排序2.假如转载 2013-11-07 18:21:24 · 1499 阅读 · 0 评论 -
1-3:位查询
总时间限制: 5000ms 内存限制: 65536kB描述 给出N个范围在[0, 65535]的整数,编程支持以下的操作:(1)修改操作:C d,所有的数都增加d。如果超过65535,把结果模65536。 0 (2)查询操作:Q i,统计在N个正整数中有多少个整数其对应的二进制形式的第i位二进制位为非0。0 最后,输出所有查询操作的统计值。转载 2013-11-07 17:59:26 · 924 阅读 · 0 评论 -
2-4:中缀表达式的值
总时间限制: 200ms 内存限制: 1024kB描述人们熟悉的四则运算表达式称为中缀表达式,例如(23+34*45/(5+6+7))。在程序设计语言中,可以利用堆栈的方法把中缀表达式转换成保值的后缀表达式(又称逆波兰表示法),并最终变为计算机可以直接执行的指令,得到表达式的值。给定一个中缀表达式,编写程序,利用堆栈的方法,计算表达式的值。输入第一行为测试数据的组数N转载 2013-11-07 18:31:45 · 2048 阅读 · 0 评论 -
2-2:栈的基本操作
总时间限制: 1000ms 内存限制: 1000kB描述栈是一种重要的数据结构,它具有push k和pop操作。push k是将数字k加入到栈中,pop则是从栈中取一个数出来。栈是后进先出的:把栈也看成横向的一个通道,则push k是将k放到栈的最右边,而pop也是从栈的最右边取出一个数。假设栈当前从左至右含有1和2两个数,则执行push 5和pop转载 2013-11-07 18:26:17 · 1053 阅读 · 0 评论 -
1-4:放苹果
总时间限制: 1000ms 内存限制: 65536kB描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 输出对输入的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8转载 2013-11-07 18:04:11 · 1172 阅读 · 0 评论