1、装箱问题:给定大小为S1,…,Sn的n个物件,其中0<Si≤1,寻能够装进所有这些物件的最少数量的箱盒,每个箱盒容量为1。(提示:贪心法求解。)
2、已知一个包含n个元素的整型数组和一个整数K。试用O(NlogN)算法解决这样的问题:确定数组中是否存在两个数,它们的和等于给定的数K。一个数可以被使用两次。
例如,如果输入是8,5,2,7而K是12,则答案为yes(5和7)。
输入:
8  5  2  7
12
输出:
yes
 
3、已知有2n个元素的无序数组a,试用O(n)算法将这2n个元素分别放入大小均为n的数组b和c。使得数组b中的所有元素均小于数组c中的任意元素。
输入:
5
7  10  4  2  6  9  1  8  3  5
输出:
4  2  1  3  5
7  10  6  9  8
(注意:输入第一行为1/2数组a的大小,第二行为数组a中的元素,输出时b、c数组中元素顺序不一定与示例一致)
 
 
4、令A为元素是0和1的N行N列矩阵。A的子矩阵S由形成方阵的任意一组相邻项组成。设计一种O(n2)算法,确定A中的全为1的最大子矩阵的阶数。
输入:(可以程序中初始化)
1 0 1 1 1 0 0 0
0 0 0 1 0 1 0 0
0 0 1 1 1 0 0 0
0 0 1 1 1 0 1 0
0 0 1 1 1 1 1 1
0 1 0 1 1 1 1 0
0 1 0 1 1 1 1 0
0 0 0 1 1 1 1 0
输出:
4
(输入:一个矩阵,输出:全为1的最大子矩阵阶数)
(提示:动态规划解题。)
5  输入一批数据{342756122578943658906677},从这批数中出最大值和第二大的值以及它们所在的位置。要求在同一个循环中既出最大值又出第二大值(只能使用一层循环)。不允许用排序的方法。
 
6  编写一个万年历程序。输入1900年后的某一年,要求显示该年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。
 
7  一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06006等。数字计数问题要求编写程序对给定书的总页码n,计算出书的全部页码中分别用到多少次数字01234……9.
 
8          用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为25102050100,用来凑15元,可以用52元、15元,或者35元,或者15元、110元,等等。显然,最少需要2个钱币才能凑成15元。,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。
 
6   阿长最近迷上了一种矩阵,他认为通过分析这种图形可以参悟人的生死轮回。这个图形由1到n*n这些数字组成。n表示一个人的年龄。比如,当一个人的年龄为4的时候,那么对于他的轮回矩阵就是如下的一个图形:
 
                1  2    3    4
                12  13  14  5
                11  16  15  6
                10  9    8    7
从左上角的1开始,以顺时针的方向进行旋涡式的伸展。这样的一个图形我们称它为4岁的轮回矩阵。为了更好的研究这些矩阵,阿长不得不再次求助于你,希望你能编写一个程序,当我们输入一个人的年龄的时候(年龄小于50),你的程序能生成一个对于该年龄轮回矩阵。

1、坚持不懈的蜗牛
Problem description:现在有一只蜗牛,掉入一个 6米深的井底,它想爬到井口上面去。蜗牛在第一天的白天能爬 3 米,但在每天夜晚由于睡觉,它会滑落 1 米。又由于疲劳因素,以后每个白天它所能爬的高度以 10% 递减,也就是说,下一天比前一天要少爬 0.3 米。那么蜗牛哪一天才能爬到井口上去呢?在下表中你会看到,蜗牛在第三天爬到井口。
汽车油箱容量
天数
每天初始高度
每天所爬高度
白天到达高度
夜间滑落后高度
1
0
3
3
2
2
2
2.7
4.7
3.7
3
3.7
2.4
6.1
--

你现在要将这个问题一般化。给定不同的参数,最后的结果可能有两种:爬到井口或滑落井底。你需要计算的是,最终结果如何,以及这个结果发生在哪一天。
Input:输入文件中可包含多个事件,每一行中输入一次事件的 4 个参数。这四个数分别是:
H 、 U 、 D 、 F ,参数之间用空格隔开。其中 H 为井的深度, U 是蜗牛在第一天的白天能爬的高度, D 是蜗牛每天晚上要滑落的高度, F 是疲劳因子(用百分数的形式表示,如 30 表示为 30% )。蜗牛所爬的高度不能为负数,假若由于疲劳因素,我们算出蜗牛该天到达的高度为负,那么认为蜗牛当天根本没有爬。不管蜗牛白天爬多高,它每天晚上都会滑落 D 米。如果一行四个数都为 0 ,则表示结束。
Output:对于输入中的每个事件(每一行),程序输出一行与之对应。输出结果包括蜗牛是否成功超过要求高度,以及到达该高度的天数。
Sample Input
6 3 1 10
10 2 1 50
50 5 3 14
0 0 0 0
Sample Output
SUCCESS ON DAY 3
FAILURE ON DAY 4
FAILURE ON DAY 7
2.旅行家的预算
Problem description:一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零), 油站i离出发点的距Di、每升汽油价格 Pi( i=l,2,...N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No solution”。
Input:输入数据的第一行是四个实数;
D1 C D2 P分别表示两个城市之间的距离,汽车油箱的容量,每升汽油能行驶的距离,出
发点每升汽油价格;
第二行是一个整数N,沿途的油站数。
第三行到第N+2,每一行是一个油站的基本信息描述,包括该油站离出发点的距离,该油站每升汽油的价格。
Output:输出到达目的城市的最小费用(四舍五入到两位小数),若不能到达目的城市则输出: No solution.
 
Sample Input:
275.6  11.9  27.4  2.8
2
102.0  2.9
220.0  2.2
Sample Output:
26.95
3.Triangle
Problem descriptionGiven the coordinates坐标 of the vertices (顶点) of a triangleAnd a point. You just need to judge whether the point is in the Triangle.
InputThe input contains several test cases测试例子. For each test case, only line contains eight integer numbers , describing the coordinates of the triangle and the point. All the integer is in range of [-100 , 100]. The end of the input is indicated by a line containing eight zeros separated by spaces.
OutputFor each test case , if the point is inside of the triangle ,please output the string ”YES”, else output the string “NO”. You just need to follow the following examples.
Sample Input
0 0 4 0 0 4 3 1
0 0 4 0 0 4 1 2
0 0 4 0 0 4 -1 -1
0 0 0 0 0 0 0 0
Sample Output
NO
YES
NO
4.Longest Ordered Subsequence
Problem descriptionA numeric sequence数字序列of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK), where 1 <= i1 < i2 < … < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).
Your program, when given the numeric sequence, must find the length of its longest ordered subsequence.
InputThe first line of input contains the length of sequence N. The second line contains the elements of sequenceN integers in the range from 0 to 10000 each, separated by spaces. 1 <= N <= 1000