头衔:ENDLESS 等级:版主 文章:36 积分:116 注册:2004-11-24 |
简单的练习题 Problem 1 elevator. 一个简单的数学模拟题! 有一座电梯,它的性能如下: 上升一层需要6秒钟,下降一层需要4秒钟,如果要让它停下,它会停5秒钟. 现在告诉你它要按顺序到达然后停靠的N个楼层,求它需要的时间. 电梯开始在0层,楼梯共有100层. 输入(elevator.in):第一行为N(N<=50),接下来的N行是它N个停靠的楼层. 输出(elevator.out):只有一行,为所需要的时间. 输入样例1: 1 2 输入样例2: 3 2 3 1 输出样例1: 17 输出样例2: 41
Problem 2. balloon 在刚刚过去的六一节里(虽然我们已经不是儿童了,也可以庆祝一下啊,哈哈),游乐园的天空中飘满了气球,明明对这些气球突然有了兴趣,他需要你的帮助! 你将会被告知气球的数量以及每个气球的颜色 相同颜色的气球数量被称为这种颜色的频率。 输入(balloon.in):第一行为N(N<=100),接下来的N行为1——N个气球的颜色(单词的长度不超过14个字母)! 输出 (balloon.out):第一行为气球颜色的总数. 从第二行开始,按照以下规则输出: 先输出最大频率(占一行); 再按词典顺序输出是这种频率的颜色,一种颜色占一行。 对其它所有频率按从大到小的顺序进行相同的操作(要保证操作了所有的频率与颜色)。 样例输入1: 5 green red blue red red 样例输入 2: 3 pink orange pink 样例输出 1: 3 3 red 1 blue green 样例输出 2: 2 2 pink 1 orange
Problem 3. circle 为了更好地解决这个问题,我们来看几个例子。 首先我们定义N!=1*2*3*……*N。 再定义C(M,N)为从M个元素中无序取出N个的方法,P(M,N)为从M个元素中有序取出N个的方法。 这样的定义是什么意思呢?比如说从1,2,3,4共4个元素中中取出3个,有(1,2,3);(1,3,4);(2,3,4);(1,2,4)这样共4种,而这里是不考虑顺序的,所以C(4,3)=4,而如果对每一种方案考虑它的排列顺序的话,那结果将会不同,因为(1,2,3);(1,3,2);(2,1,3);(2,3,1);(3,1,2);(3,2,1)将被视为不同的方案,所以P(4,3)=6*4=24. 下面给出它们的计算公式: P(M,N)=M!/(M-N)! C(M,N)=M!/((M-N)!*N!) 再来解决这个问题,你会觉得更轻松! 圆周上有N(N<=100)个点,用线段将它们彼此相连。这些线段中任意三条在圆内都没有公共交点,问这些线段能构成多少个顶点在圆内的三角形? 输入(circle.in):一行,为数值N。 输出(circle.out):一行,为所求的答案。 注意:只要你数据处理得当,结果与中间数值的范围一定在longint以内,请不要使用int64,因为这可能会引起系统误判! 样例输入:6 样例输出:1 |
|
|