zoukankan      html  css  js  c++  java
  • CF1237F

    CF1237F

    给定一个大小为 (n imes m) 的矩形,需要放置部分 (1 imes 2) 的骨牌,满足不存在两张骨牌占据了同一行或者同一列。

    现在已经放了 (k) 张骨牌,求在这个矩形上额外放置若干张骨牌的方案数(骨牌无标号)。

    (n,mle 3600,kle 2400)

    Solution

    维度分离真的是一个好东西。

    你会发现我们可以将问题视为一维的情况,然后只需要将两个一维维的情况配对起来就可以了(这样就是二维了)。

    所以考虑一维的情况,即给定长度为 (n/m) 的序列,部分位置已经放置了元素,你需要放置恰好 (k)(1/2) 的方案数。

    (f_{i,j}) 表示当前放置了 (j)(2) 的方案数,转移枚举当前位置放 2 / 不放 的情况即可,然后剩余的位置全部塞 (1) 即可。

    最后统计答案的时候枚举 (1,2) 在第一个维度上的方案数即可。复杂度为 (mathcal O(n^2+m^2))

  • 相关阅读:
    练习_Python3 爬取笔趣阁最新小说章节
    Python3 map()函数
    Java图片验证码生成
    神经网络
    leetcode
    hive开发规范
    北明数科 bug
    JAVA集合~
    令人头痛的JVM
    重定向和管道符
  • 原文地址:https://www.cnblogs.com/Soulist/p/13672768.html
Copyright © 2011-2022 走看看