Codechef OJ上一道题目没有思路,请高手提示一下解题思路

发布于 2022-08-31 20:24:27 字数 370 浏览 18 评论 0

是昨天Codechef上的题,链接是http://www.codechef.com/CONI2015/problems/CN02
我理解题目大概的意思是(仅做参考,为保证准确最好看一下链接):
有6对箱子和一个单独的箱子,表示如((A1 A2) (B1 B2) (C1 C2) (D1 D2)(E1 E2) (F1 F2) G),有N个物品要放入这7个箱子里,N<=10^6,并且保证每个箱子至少有一个物品,而且成对的两个箱子里的物品数量要相等,问分配N个物品的方式有多少种,答案要模上大质数10^9+7.
请高手给予解题思路,先谢谢了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呆头 2022-09-07 20:24:27

嘛, 你这个问题嘛, 可以这样考虑嘛:

  • N为偶数的时候, 由于前面6个箱子都是成对出现的且至少为一个,所以对于G来说他的个数必定是偶数个吧,也就是 G 的分配数为 N/2 种,

    • 对于其中一个特例,比如 G 分配为2来说吧, 剩下的就是 N-2, 也就是把 $\frac{N-2}{2}$ = tmp 的物品分配到 6个箱子里面, 且保证每个箱子都有物品,就是 使用插板法 肯定是 C[tmp-1][5] 这么算吧
    • 这么转化一下就是: $\sum_{i=2}{N-12} C[$\frac{N-2}{2}$-1][5]$ 这么算的吧
    • 考虑一下 N<=12 的边界情况很容易的吧, 为什么是 N<=12 呢? 你想啊,6个成对的箱子都要有物品不是就是这个结果了嘛。 N<=12 都可以判定为不合法的啦吧
    • 然后就是,先 O(N) dp就算出 10^6 以内所有的组合 C[m][n]%(10^9+7) 吧, 结果随便怎么取模一下就可以啦
  • N为奇数的时候, 和上面考虑的一样的吧, 就是边界情况不一样吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文