ForFisrtWork:我遇到过的面试题

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题。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值