由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 求问G面试题,非普通的DP
相关主题
从 topcoder 搬来一个问题,看看大家有什么想法amazon OR scientist面经
问个老算法题Uber 电面
问道G题(2)问一道题
发道面经攒人品求一道 面世题 的解答思路
问一道flg面试题关于矩阵中找矩形和正方形汇总请教
今早的G电面,郁闷坏了...Google onsite interview questions
subset sum的问题O(NlogN) largest rectangle in histogram
请教一道电面算法题问一个算法题
相关话题的讨论汇总
话题: dp话题: 矩形话题: 照片话题: knapsack话题: research
进入JobHunting版参与讨论
1 (共1页)
s*****i
发帖数: 32
1
一面墙dimension: m*n, 家里有各种尺寸的照片,设计一个算法贴最多照片。
好像别的公司也问到了。
简单的挖去右下角的dp,剩下的子问题不再是矩形,所以不是简单的两维dp就能解决的
。求问大牛们如何解答?
谢谢!
p*u
发帖数: 136
2
剩下2个矩形,不是吗?

【在 s*****i 的大作中提到】
: 一面墙dimension: m*n, 家里有各种尺寸的照片,设计一个算法贴最多照片。
: 好像别的公司也问到了。
: 简单的挖去右下角的dp,剩下的子问题不再是矩形,所以不是简单的两维dp就能解决的
: 。求问大牛们如何解答?
: 谢谢!

d********e
发帖数: 239
3
照片是无限多么?
如果照片是无限多,还是二维dp吧

【在 s*****i 的大作中提到】
: 一面墙dimension: m*n, 家里有各种尺寸的照片,设计一个算法贴最多照片。
: 好像别的公司也问到了。
: 简单的挖去右下角的dp,剩下的子问题不再是矩形,所以不是简单的两维dp就能解决的
: 。求问大牛们如何解答?
: 谢谢!

r**********o
发帖数: 50
4
不对吧,如果说剩下两个矩形,那么两个矩形交界的地方怎么算?
就算用取2种分法的max,还是有漏掉一些解吧?
dp[m][n] = 1 + Math.max(dp[m-a][b] + dp[m][n-b],
dp[m-a][n] + dp[a, n-b]);
r**********o
发帖数: 50
5
对了,如果照片不是无限多的话,那么:
就需要决定recursive的顺序? 以及要用一个数组去保存已经visited的照片,to
prevent conflict?
z******g
发帖数: 271
6
如果想成剩下3个矩形呢?
g**********y
发帖数: 14569
7
没有什么问题啊,看不出来漏了什么解。USACO里有道题就是那样设计的

【在 r**********o 的大作中提到】
: 不对吧,如果说剩下两个矩形,那么两个矩形交界的地方怎么算?
: 就算用取2种分法的max,还是有漏掉一些解吧?
: dp[m][n] = 1 + Math.max(dp[m-a][b] + dp[m][n-b],
: dp[m-a][n] + dp[a, n-b]);
:

s*****i
发帖数: 32
8
照片可以贴在跨越边界的地方,比如跨越dp[m-a][b] 和 dp[m][n-b]交接的那条线。
子问题是一个六边形,这个六边形问题不是简单的max(dp[m-a][b] + dp[m][n-b], dp[
m-a][n] + dp[a, n-b])就能解决的。也就是说子问题跟原问题已经不一样了。
发信人: gloomyturkey (一只郁闷的火鸡), 信区: JobHunting
标 题: Re: 求问G面试题,非普通的DP
发信站: BBS 未名空间站 (Wed Dec 25 16:18:03 2013, 美东)
没有什么问题啊,看不出来漏了什么解。USACO里有道题就是那样设计的

【在 r**********o 的大作中提到】
: 不对吧,如果说剩下两个矩形,那么两个矩形交界的地方怎么算?
: 就算用取2种分法的max,还是有漏掉一些解吧?
: dp[m][n] = 1 + Math.max(dp[m-a][b] + dp[m][n-b],
: dp[m-a][n] + dp[a, n-b]);
:

s*****i
发帖数: 32
9
我也是觉得两个矩形交界的地方导致不能用这种简单的DP。

【在 r**********o 的大作中提到】
: 不对吧,如果说剩下两个矩形,那么两个矩形交界的地方怎么算?
: 就算用取2种分法的max,还是有漏掉一些解吧?
: dp[m][n] = 1 + Math.max(dp[m-a][b] + dp[m][n-b],
: dp[m-a][n] + dp[a, n-b]);
:

g**********y
发帖数: 14569
10
照片不管怎么跨越边界,只要不overlap, 就一定落在定义的四个矩形里的某一个。

dp[

【在 s*****i 的大作中提到】
: 照片可以贴在跨越边界的地方,比如跨越dp[m-a][b] 和 dp[m][n-b]交接的那条线。
: 子问题是一个六边形,这个六边形问题不是简单的max(dp[m-a][b] + dp[m][n-b], dp[
: m-a][n] + dp[a, n-b])就能解决的。也就是说子问题跟原问题已经不一样了。
: 发信人: gloomyturkey (一只郁闷的火鸡), 信区: JobHunting
: 标 题: Re: 求问G面试题,非普通的DP
: 发信站: BBS 未名空间站 (Wed Dec 25 16:18:03 2013, 美东)
: 没有什么问题啊,看不出来漏了什么解。USACO里有道题就是那样设计的

相关主题
今早的G电面,郁闷坏了...amazon OR scientist面经
subset sum的问题Uber 电面
请教一道电面算法题问一道题
进入JobHunting版参与讨论
M**********s
发帖数: 8
11
这是2D bin packing问题吧?这样的话就是NP-hard
先问问是否有额外的条件,照片大小、张数之类的
如果额外条件的话,应该无法在polynomial time求最佳解
可以构思一些一些heuristic approach
题外话,游戏常需要把很多不同大小的textures压在同一张texture
就是要用类似的方法
但optimize的目标不一样:
游戏要用最少的「牆壁」,而这题是只有一面牆壁要贴最多的照片。
不知道我记得的跟您说的是不是同一题
USACO 1.4.1 Packing Rectangles 那道题只有4个矩形,brute force就解掉了
但如果有30张大小不同的照片恰好可以塞在一个大rectangle中,可能是找不出最佳解的
我觉得2D DP不可行,原因如先前有人提到,就是无法model不同大小照片造成的縫隙
另外如果他真的是NP-hard,也显然不可能reduce成2D DP
b*********h
发帖数: 103
12
USACO 里有一块板子贴一堆东西的题 不过是算面积和周长的
h*****u
发帖数: 109
13
这个属于2D knapsack problem. 有DP算法,复杂度为O(LW(n+L+W)) 。见
http://www.cs.kent.edu/~parallel/papers/ulm_wmpp04.pdf
P.C. Gilmore and R.E. Gomory, Multistage cutting stock
problems of two or more dimensions, Operations Research,
13:94-120, 1965.
w*******s
发帖数: 138
14
这个paper里的方法有一个额外的约束:
This cutting problem allows only recursive side-to-side or guillotine cuts o
f the knapsack.
就是说必须从一边割到另外一边(不能割到中间就停),原题里没有这个约束。

【在 h*****u 的大作中提到】
: 这个属于2D knapsack problem. 有DP算法,复杂度为O(LW(n+L+W)) 。见
: http://www.cs.kent.edu/~parallel/papers/ulm_wmpp04.pdf
: P.C. Gilmore and R.E. Gomory, Multistage cutting stock
: problems of two or more dimensions, Operations Research,
: 13:94-120, 1965.

h****t
发帖数: 184
15
请问题目里,照片的尺寸和个数是不是已经给定的?

【在 s*****i 的大作中提到】
: 一面墙dimension: m*n, 家里有各种尺寸的照片,设计一个算法贴最多照片。
: 好像别的公司也问到了。
: 简单的挖去右下角的dp,剩下的子问题不再是矩形,所以不是简单的两维dp就能解决的
: 。求问大牛们如何解答?
: 谢谢!

h*****u
发帖数: 109
16
有道理。除了guillotine cut,Gilmore and Gomory 还允许 multiple items,但是这
个题目只是允许最多一个。
这个也不属于multi-dimensional knapsack, 因为不是简单的相加关系。
我找到最相关的是:An exact algorithm for general, orthogonal, two-
dimensional knapsack problems, European Journal of Operational Research 83 (
1995) 39-56。但是也不是DP.
感觉如果要表征solution,需要把已经剩余区域的所有极点(extreme points)都记录下
来。如此,怎么设计DP?

o

【在 w*******s 的大作中提到】
: 这个paper里的方法有一个额外的约束:
: This cutting problem allows only recursive side-to-side or guillotine cuts o
: f the knapsack.
: 就是说必须从一边割到另外一边(不能割到中间就停),原题里没有这个约束。

j*********g
发帖数: 36
17
If we do not allow infinitely many copies for every photo dimension, then it
's NP-hard. Reduce subset sum to it.
If infinitely many copies are allowed, I think there is a greedy+DP solution
. Start by removing all "dominated" dimensions, i.e. axb dominates cxd if a
<=c and b<=d.
l********r
发帖数: 140
18
Still can't get the solution. Any more hints?
Thanks
g*****g
发帖数: 212
19
---------
--|
|
------|
假设每种尺寸无限:
减下去右 {(x1,y1),(x2,y2)},有两种分割:
1) {(0,0),(x2,y1)} {(0,y1),(x1,y2)}
2) {(0,0),(x1,y2)} {(x1,0),(x2,y1)}
是否可以如此
DP是求 max( 1),2) ) +1
DP 基本元素是 矩形(长和宽),所以可以用一个matrix(n X m)表示。
c*****e
发帖数: 67
20
我觉得,Operations Research这个最top的journal上的题,就不可能拿来出面试题了
吧。
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个算法题问一道flg面试题
尘埃落定(MGF的面试总结)今早的G电面,郁闷坏了...
直方图盛水最大容量问题subset sum的问题
求Leetcode OJ Maximal Rectangle的n^2解法请教一道电面算法题
从 topcoder 搬来一个问题,看看大家有什么想法amazon OR scientist面经
问个老算法题Uber 电面
问道G题(2)问一道题
发道面经攒人品求一道 面世题 的解答思路
相关话题的讨论汇总
话题: dp话题: 矩形话题: 照片话题: knapsack话题: research