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题。
记得以前张以文老师讲过,我现在还是一头雾水,因为很少用。
有一个博文不错: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题。
相关文章推荐
- 用递归设计一个数组排序(前俩天遇到的一个面试题)
- 积累 ---- PHP可能会遇到的面试题
- 事件代理(面试题中遇到的坑)
- 15+N个顶级网上流行的Java多线程面试题及自己总结的答案(遇到即会更新)
- 【那些年遇到过的面试题】 grep find 区别
- 遇到的一个面试题:编写一个strlen函数,不能使用全局变量或者局部变量
- java面试题整理(面试遇到的,暂无答案)
- 最全Java面试题(一)面试时这些问题你早晚都会遇到
- 自己遇到的前端面试题解法
- 遇到的一些面试题
- 今天遇到的面试题!
- 分享几道你可能遇到的python面试题
- PHP经典面试题之设计模式(经常遇到)
- 朋友遇到过的t厂面试题
- Java面试定会遇到的56个面试题
- Android面试题]--BAT三年面试集锦之Android面试之二(你一定会遇到)
- 【那些年遇到过的面试题】grep和find的区别
- 这几天遇到的一些面试题
- 曾遇到的算法面试题
- PHP面试题遇到的几个坑。...面壁ing