找一道题目

今天面试遇到的,
有64x64的网格,有1x3 3x3 1x1 这些大小的物件
求填充网格最少需要多少物件。
#笔试题目#
全部评论
直觉告诉我贪心最快,但应该还有其它方法。我现在想用动态规划写出来,先抛砖引玉说下思路吧,用dp[a,b]表示a x b网格下最少的物件数量,其中a<b。初始化dp[1,1]=1,dp[1,3]=1,dp[3,3]=1,dp[1,2]=2,dp[2,3]=2.....(就是把3x3方格的全部初始化就行) 处理好边界dp[1,n]=min((dp[1,n-1]+dp[1,1]),(dp[1,n-3]+dp[1,3]))。 处理好边界dp[2,n]=min((dp[2,n-1]+dp[1,2]),(dp[2,n-3]+dp[2,3]))。 于此同理处理dp[3,n]。 然后dp[m,n]=min((dp[m-1,n]+dp[1,n]),(dp[m-2,n]+dp[2,n],dp[m-3,n]+dp[3,n])。 按照这样递推就可以遍历所有的情况,不过复杂度很高,但是可以试用于其它各种情况。
2 回复 分享
发布于 2021-03-31 21:54
贪心的话直接先放大的,然后放小的,甚至可以用数学表达式来解释
1 回复 分享
发布于 2021-03-31 21:57
贪心,按你的直觉来放就对了。 另外看着也可以用网络流来搞【口胡
点赞 回复 分享
发布于 2021-03-27 20:30
需要用算法吗,直接算就可以吧
点赞 回复 分享
发布于 2021-04-05 23:03
(63+1)(63+1)=(21*3+1)(21*3+1)=(441*3*3+42*3*1+1*1) 441+42+1=484
点赞 回复 分享
发布于 2021-04-18 15:55
近似完全背包
点赞 回复 分享
发布于 2021-06-06 12:07

相关推荐

美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务