以下是05年浙大研究生复试机试题解,感觉题目与ACM题相比,难度还相差很远, 基本上直接贴上代码了(后续年度的题解同上), 而且将整年的5道题的代码在一篇文章中贴出来。
A题:A+B (hdoj1228)( 九度1010)
水题,不解释,直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
B题:最大连续子序列 (hdoj1231)( 九度 1011 )
这道题做过很多遍了,但用过的最好的方法还是用二重循环,在OJ上难免TLE了。 Google了下才知道,可以用DP在O(N)内实现,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
C题:畅通工程 (hdoj1232)( 九度 1012)
以前很少做图论的题,看到这题时,首先想到的就是用BFS,计算遍历完所有点所需要BFS的次数, 该次数减一即为所求,但提交后发现TLE了。查了下资料才知道,要使用并查集,以前没用过, 总以为这是STL中的东西,而STL也没学过,不会,于是乎继续想办法改进基于BFS的算法, 悲剧的是一直TLE,最后还是看了下并查集的知识,才发现用C数组很容易就可以实现。 使用了并查集后,果断AC了,呵呵。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
D题:开门人和关门人(hdoj1234)( 九度 1013)
水题,直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
E题:排名(hdoj1236)( 九度 1014)
简单题,直接调用系统的快排函数,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
小结:总的来说,05年的题不是太难,但由于很久没写代码,所以做的不是很顺。