由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道算法题
相关主题
一道T的题。interviewstreet上求排列组合的题好像挺多的
新鲜出炉的Broadcom电话面试题这次 InterviewStreet 的 Codesprint 被忽悠了,没几个公司可以申请的
single number bitmask 解法[InterviewStreet] XOR key (50 Points),请pass的大牛给点思路
[ job referral ] 打算申请 FACEBOOK 的进北京二爷你面过facebook没有?
interviewstreet 的chanllege #2分享个有趣的 onsite
一道题:Vertical Sticks在interviewstreet上做了几题,受打击了
[InterviewStreet] Lego Blocks (50 Points)Facebook的puzzle什么难度呀?
[InterviewStreet] Grid Walking (Score 50 points)interviewstreet的string reduction是不是只能brute force
相关话题的讨论汇总
话题: use话题: split话题: dp话题: so话题: 砖头
进入JobHunting版参与讨论
1 (共1页)
r*********n
发帖数: 4553
1
给一个N x M的长方形和1 x 2的砖头(可旋转90度)。问有多少种方法使得这个长方形
刚好被完全覆盖?
如果这个砖头是n x m,这个题又怎么解呢?
s*******s
发帖数: 1031
2
Use DP:
let f(i, j) as the number of approaches. So:
f(i, j) = 0, if i<1 OR j<1 OR i*j<2
= 1, if i==1 and j==2 OR i==2 and j==1
= f(1, j-2)*f(i-1, j) + f(i-1, 2)*f(i, j-2) // use 1*2 to split
+ f(2, j-1)*f(i-2, j) + f(i-2, 1)*f(i, j-1) // use 2*1 to split

【在 r*********n 的大作中提到】
: 给一个N x M的长方形和1 x 2的砖头(可旋转90度)。问有多少种方法使得这个长方形
: 刚好被完全覆盖?
: 如果这个砖头是n x m,这个题又怎么解呢?

r*********n
发帖数: 4553
3

我之前也是这么想的,用两种砖头放在左上角,然后以砖头的两条边作为分割线,把剩
下来的多边形分成两个长方形(每种砖头都有两种分法),然后再recurse。但是仔细
想一下,发现有种情况没有包括进去:有可能有一种覆盖方法使得两条分割线都从砖头
中间通过,也就是说剩下来的多边形并不等价于两个长方形
split
split

【在 s*******s 的大作中提到】
: Use DP:
: let f(i, j) as the number of approaches. So:
: f(i, j) = 0, if i<1 OR j<1 OR i*j<2
: = 1, if i==1 and j==2 OR i==2 and j==1
: = f(1, j-2)*f(i-1, j) + f(i-1, 2)*f(i, j-2) // use 1*2 to split
: + f(2, j-1)*f(i-2, j) + f(i-2, 1)*f(i, j-1) // use 2*1 to split

r**h
发帖数: 1288
4
这不是那个经典的状态压缩DP嘛
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=11
我觉得远超过面试题的难度范围了。。
g****o
发帖数: 547
5
DP+bitmask肯定能做
刚才在想有没有简单的做法,没想出来
DP+bitmask作为面试太难了,但作为不限时的challenge是出现过的
比如 pocketgems这题
http://pocketgems.com/engineering/questions
题目稍稍加了难度, 1x1,1x2,2x1 三种,一条边特别长:2^1024
大家有兴趣的话,私下里对下答案 呵呵

【在 r**h 的大作中提到】
: 这不是那个经典的状态压缩DP嘛
: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=11
: 我觉得远超过面试题的难度范围了。。

g****o
发帖数: 547
6
interviewstreet上有几题也是这个思路,做对的人都很少
镂空棋盘上的n皇后问题
https://www.hackerrank.com/challenges/queens-on-board
镂空棋盘上的 L 型覆盖
https://www.hackerrank.com/challenges/brick-tiling

【在 r**h 的大作中提到】
: 这不是那个经典的状态压缩DP嘛
: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=11
: 我觉得远超过面试题的难度范围了。。

P**l
发帖数: 3722
7
这个不大对吧。
n*m % 2 == 1的时候f(n,m) = 0对吧

split
split

【在 s*******s 的大作中提到】
: Use DP:
: let f(i, j) as the number of approaches. So:
: f(i, j) = 0, if i<1 OR j<1 OR i*j<2
: = 1, if i==1 and j==2 OR i==2 and j==1
: = f(1, j-2)*f(i-1, j) + f(i-1, 2)*f(i, j-2) // use 1*2 to split
: + f(2, j-1)*f(i-2, j) + f(i-2, 1)*f(i, j-1) // use 2*1 to split

r*********n
发帖数: 4553
8
谢谢大家
没想到这到题水这么深,这是一家投行的电面题,我当时用第二楼的方法扯了十几分钟
,然后面官说大方向对了。
r*********n
发帖数: 4553
9
能给一个dp + bitmask的tutorial link吗?
thx

【在 g****o 的大作中提到】
: DP+bitmask肯定能做
: 刚才在想有没有简单的做法,没想出来
: DP+bitmask作为面试太难了,但作为不限时的challenge是出现过的
: 比如 pocketgems这题
: http://pocketgems.com/engineering/questions
: 题目稍稍加了难度, 1x1,1x2,2x1 三种,一条边特别长:2^1024
: 大家有兴趣的话,私下里对下答案 呵呵

1 (共1页)
进入JobHunting版参与讨论
相关主题
interviewstreet的string reduction是不是只能brute forceinterviewstreet 的chanllege #2
interviewstreet 明天有个quora专场 感兴趣的童鞋们可以参加试一道题:Vertical Sticks
interviewstreet - kingdom connectivity[InterviewStreet] Lego Blocks (50 Points)
fb一题求解答[InterviewStreet] Grid Walking (Score 50 points)
一道T的题。interviewstreet上求排列组合的题好像挺多的
新鲜出炉的Broadcom电话面试题这次 InterviewStreet 的 Codesprint 被忽悠了,没几个公司可以申请的
single number bitmask 解法[InterviewStreet] XOR key (50 Points),请pass的大牛给点思路
[ job referral ] 打算申请 FACEBOOK 的进北京二爷你面过facebook没有?
相关话题的讨论汇总
话题: use话题: split话题: dp话题: so话题: 砖头