[C] Maximum Sum
给你一个NxN的阵列,请你找出有最大和的子区域(sub-rectangle)其和为多少。一个区域的和指的是该区域中所有元素值的和。一个区域是指相连的任意大小的子阵列。例如,对以下的二维阵列:
其最大和的子区域位于左下角,并且其和为15。如下所示:
Input
只有一组测试资料,第一列有一个正整数N(N <= 100),代表此二维阵列大小为NxN。
从第二列起有N 2个整数,代表此阵列的内容。每个整数都介于-127到127之间,且以列为主(row-major)的顺序排列。Sample Input即为上图所示的阵列。
Output
输出有最大和的子区域其和是多少。
Sample Input
4 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2
Sample Output
15
[D] Vito's family
世界闻名的黑社会老大Vito Deadstone要搬到纽约来了。在那里他有一个大家族,并且他们都住在Lamafia大道上。因为Vito时常要拜访所有的亲戚,他想要找一间离他们最近的房子,也就是说他希望从他的家到所有的亲戚的家的距离的和为最小。
他恐吓你写一个程式来帮助帮助他解决这个问题。
Input
输入的第一列有一个整数代表以下有多少组测试资料。
每组测试资料一列,第一个整数r(0 < r < 500),代表他亲戚的数目。接下来的r个整数s 1 ,s 2 ,......s r为这些亲戚房子的门牌号码(0 < s i <30000)。注意:有些亲戚的门牌号码会相同。
Output
对每一组测试资料,输出从他的新家到所有的亲戚的家的距离的和为最小为多少。2个门牌号码s i、s j的距离为s i -s j的绝对值。
Sample Input
3 2 2 4 3 2 4 6 4 2 1 999 5Sample Output
2 4 1001
[E] Artificial Intelligence
高中物理老师通常认为把问题隐藏在题目的文字中比单纯计算要难得多,毕竟学生必须先看得懂题目才行!
所以他们不喜欢把题目出 成像``电压=10伏特,电流=5安培,请问电功率=?"这种类型,而比较喜欢出成``你有一组电路,包含一个电压=10伏特的电池和一个灯泡。若现在有5安培的电流通过灯泡,请问灯泡的电功率是多少?"(由于本题Input与英文有关,兹将原文收录如下:`` You have an electrical circuit that contains a battery with a voltage of U=10V and a light-bulb. There's an electrical current of I=5A through the bulb. Which power is generated in the bulb? ".)
然而超过半数的学生并不会把注意力放在那些文字上,他们只会设法从文字中找出已知条件:电压=10伏特,电流=5安培。然后思索``我该用哪条公式?Ah, yes, P=I*V;所以P=10V*5A=500W。完成!"
OK,这个方法并不是每次都有用,所以通常这些学生在物理考试中得不到顶尖的成绩,但至少这种简单的演算法已足以获得及格以上的成绩。(遗憾但却是事实)
现在我们要试试看电脑能不能通过高中物理考试,我们先来解决这个功率-电压-电流(PUI type)的问题,也就是说题目给任两个已知条件,你要求出第三个。
你的工作就是写一支程式可以读入一段题目的文字,并根据上面所描述的简易演算法来求出答案。
Input
输入档的第一行会先告诉你有多少个题目要求答案。
每一个问题由一列包括两个明确的已知条件和一些额外的文字组成。已知条件会以下列格式出现:I= x A 或U= x V 或者 P= x W(x属于实数) 在单位(A,V或W)前可能会带有一个数量级单位:m(milli, 10的-3次方),k(kilo,10的3次方)或M(Mega,10的6次方)。总而言之,已知条件(data field)会遵守下列文法:
DataField ::= Concept '=' RealNumber [Prefix] Unit Concept ::= 'P' | 'U' | 'I' Prefix ::= 'm' | 'k' | 'M' Unit ::= 'W' | 'V' | 'A'额外说明:
- 等号不会出现在已知条件(data field)外的地方。
- 已知条件(data field)中不会出现空白字元。
- 已知条件可能给电压+功率或功率+电流或电流+电压三种形式。
Output
对每个题目必须输出三列:
- 第一列输出``Problem #k",k代表第几题。
- 第二列输出答案(试所求输出电压、功率或电流)并将数量级转换为基本单位及两位有效小数位数(见sample output)
- 第三列为空白行。
Sample Input
3 If the voltage is U=200V and the current is I=4.5A, which power is generated? A light-bulb yields P=100W and the voltage is U=220V. Compute the current, please. bla bla bla lightning strike I=2A bla bla bla P=2.5MW bla bla voltage?
Sample Output
Problem #1 P=900.00W Problem #2 I=0.45A Problem #3 U=1250000.00V
[G] The Hamming Distance Problem
给2个相同长度的2元字串,比较他们在相同位置的内容,并计算各位置内容不一样的总数,我们称该数为它们之间的Hamming distance。这任务可以经由对字串中各相同位置字元作XOR的运算或者做2进位的相加(但不进位)而得到。以下的例子为2个长度为10的2元字串A、B经过XOR运算。可以看出共有6个1,所以其Hamming distance为6。
A 0 1 0 0 1 0 1 0 0 0 B 1 1 0 1 0 1 0 1 0 0 A XOR B = 1 0 0 1 1 1 1 1 0 0你的任务是给你字串的长度(N)及所要求的Hamming distance(H),请你输出所有这样的2元字串,也就是长度为N的二元字串,且恰好有H个1的字串。由数学我们得知这样的字串共有C(N,H)个。也就是:
N! ───── (NH)! H!Input
输入的第一列有一个正整数,代表以下有多少组测试资料。
每组测试资料一列,含有2个正整数N、H(1 <= H <= N <= 16)。N代表字串的长度,H代表Hamming distance。
请参考Sample Input。
Output
对每一组测试资料,输出所有长度为N,且Hamming distance为H的二元字串,并由小到大输出。测试资料间请空一列。
Sample Input
2 4 2 3 2Sample Output
0011 0101 0110 1001 1010 1100 011 101 110[H] The Falling Leaves
每年到了秋天树叶渐渐染上鲜艳的颜色,接着就会落到树下来。假如落叶发生在二元树,那会形成多大的树叶堆呢?
我们假设二元树中的每个节点所落下的叶子的数目等于该节点所储存的值。我们也假设叶子都是垂直落到地面上(真感谢没有风把他们吹的到处都是)。最后,我们再假设节点之间水平的距离是以下列方式定义:某个节点到其左子树以及到其右子树的水平距离均为 1。以下图来说明:
含有5和含有6的节点位于同一水平位置(当然,他们垂直的位置不同)。含有7的节点位于含有5的节点和含有6的节点左边一个位置。而含有3的节点则位于含有5的节点和含有6的节点右边一个位置。当叶子开始落下时,上面的树会在地面上形成3堆树叶。最左边那一堆有7片叶子(从最左边那个节点产生的),再来的一堆含有11片叶子(从含有5及含有6这两个节点产生的),最右边的一堆则含有3片叶子(从最右边那个节点产生的)。
Input
输入含有多组测试资料。
每组测试资料代表一棵树。描述树的方法为给你根(root)的值,然后描述左子树,然后描述右子树。假如一个子树是空的,其值为-1。因此,上图的树可描述为:5 7 -1 6 -1 -1 3 -1 -1。每个真实的节点含有一个大于0的值。
输入的最后一棵树其根的值为-1,代表输入结束(此树不用输出),请参考Sample Input。
Output
对每组测试资料输出3列,第1列输出这是第几组测试资料。第二列输出落叶所形成的树叶堆所含的叶片。由左到右,树叶堆之间以一空格相隔,长度不会超过80个字元。第三列为一空白列。请参考Sample Output。
Sample Input | Sample Output |
5 7 -1 6 -1 -1 3 -1 -1 8 2 9 -1 -1 6 5 -1 -1 12 -1 -1 3 7 -1 -1 -1 -1 | Case 1: 7 11 3 Case 2: 9 7 21 15 |