您的位置:首页 > 职场人生

ForFisrtWork:我遇到过的面试题

2013-03-05 13:30 183 查看
1 const的用法

记得以前张以文老师讲过,我现在还是一头雾水,因为很少用。

有一个博文不错:http://bbs.csdn.net/topics/310007610

2 鸽巢原理

这个ACM题目中有,我在笔试中遇到过。当时直接是数学证明题,而不是编程题。仔细一想离散上有,操作系统的题目也遇到过。忘记 具体题目了,在网上搜 了两个。

①一篮子水果装有苹果、香蕉、和橘子。为了保证篮子内或者至少8个苹果或者至少6个香蕉或者至少9 个橘子,则放入篮子中的水果的 最 小件数是多少?(7+5+8+1=21)

②一个棋手有11周的时间准备锦标赛,他决定每天至少下一盘棋,一周中下棋的次数不能多于12次。

证明:(Ⅰ)在此期间的连续一些天中 他正好下棋21次。

(Ⅱ)是否可能存在连续的一些天,棋手恰好下了22盘棋?

证明:

(Ⅰ)

一共11周,每周一共7天,那么一共有77天。

令b1,b2,...,b77分别为每一天中下棋的次数,a1,a2,...,a77为前i天下棋的总次数,即:a1=b1,a2=b1+b2,........,

a77=b1+b2+b3+...+b77.

据题意,bi>=1(1<=i<=77),

并且:bi+bi+1+bi+2+...+bi+6<=12(1<=i<=71),

考虑数列:

a1,a2,...a77,a1+21,a2+21,...,a77+21,

共有77*2=154项,

而a77最大只能为11*12=132,a77+21最大也只能为132+21=153,如此说来,154个整数只有153个取值,

且:由于bi>=1(1<=i<=77),那么a1,a2,...a77互不相等,a1+21,a2+21,...a77+21互不相等,那么

一定有1<=i<j<=77,使得ai+21=aj。即:i+1天到j这连续的几天内,共下21盘棋。

(Ⅱ)

是否可能存在连续的一些天,棋手恰好下了22盘棋?

看上去(1)似乎已经将范围限定至21,其实稍加变化,即可得证:

首先,由上题可知,a77+22最大只能为132+22=154,即:

a1,a2,...a77,a1+22,a2+22,...,a77+22,154个数有154个值,分别为1,2,3,...,154

那么我们来看一下,是否能取到22这个值。

由于ai(1<=i<=77)一定大于0,那么a1+22,a2+22,...,a77+22一定不等于22

如果a1,a2,...,a77中有ai等于22,那么恰好得证,即:从第1至i天下了22盘棋。

若没有,则代表这154个数只有153个取值,一定有1<=i<j<=77,使得ai+22=aj。即:i+1天到j这连续的几天内,共下22盘棋。

3 魔方矩阵的编程实现
这个问题其实之前遇到过两次,第一次是在AOJ上。所以说,多做ACM题。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息