首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在网格上放置硬币的计数方法

在网格上放置硬币的计数方法
EN

Stack Overflow用户
提问于 2012-07-25 00:46:52
回答 2查看 456关注 0票数 3

这个问题要求我们找出在N*M网格上放置R个硬币的方法的数量,使得每行和每列至少有一个硬币。给定的约束是N,M< 200,R< N*M。我最初想要回溯,但我意识到它永远不会及时完成。有人能帮我找到另一个解决方案吗?(DP,闭合形式公式。)任何指针都会很好。谢谢。

EN

Stack Overflow用户

发布于 2012-07-25 01:59:34

这很难,但如果你一开始就计算出每行和每列至少有一枚硬币的方法(称之为储备硬币)。答案将是#1 (n! / r! (n - r)!) *的乘积,其中#2 n = N*M - NUMBER_OF_RESERVE_COINS和#3 r = (R - NUMBER_OF_RESERVE_COINS)对应于#4,每行/列保留一枚硬币。

#4是更棘手的事情发生的地方。对于N*M,其中N!=M,abs(N-M)将告诉您单行/列上将有多少个储备硬币。我在寻找下一步的正确方法时遇到了麻烦,主要是因为时间不够(虽然我可以在周末回到这里),但我希望我已经为您提供了有用的信息,如果我所说的是正确的,您将能够完成这一过程。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11635567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档