找一道题目

今天面试遇到的,
有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-06-06 12:07
(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-04-05 23:03
贪心,按你的直觉来放就对了。 另外看着也可以用网络流来搞【口胡
点赞 回复 分享
发布于 2021-03-27 20:30

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:我了个雷 1.实习经历写太长了吧,精简一点,你写那么老多,面试官看着都烦 2.项目经历你放俩竞赛干啥单独拿出来写上几等奖就行了呗 3.一大雷点就是项目经历里的那个课程设计,大家都知道课程设计巨水,不要写课程设计,换一个名字,就叫学生管理系统,面试官问就说是自己做的项目,不要提课程设计的事 4.那个交流经历,简化一下塞到最上面的教育经历里就行了 5.简历尽量一页纸
点赞 评论 收藏
分享
爱吃烤肠的牛油最喜欢...:50K是ssp了估计,ssp的人家多厉害都不用说,每年比例大概在百分之5左右
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务