当前位置: 首页 > news >正文

2025.9.19 计数dp小记

[CQOI2011] 放棋子

本题有一个性质,棋子间互不关联,又因为数据范围小,很容易 \(dp\)
\(f_{p,i,j}\) 表示考虑前 \(p\) 种颜色,放了 \(i\)\(j\) 列的方案数
则枚举 \(p\) 放了几行几列,有

\[f_{p,i,j} = \sum_{k=0}^{i-1} \sum_{l=0}^{j-1} \begin{pmatrix} n-k \\ i-k \\ \end{pmatrix} \begin{pmatrix} m-l \\ j-l \\ \end{pmatrix}f_{p-1,k,l} \times g_{p,i-k,j-l} \]

\(g_{p,i,j}\) 表示第 \(p\) 种颜色棋子放 \(i\)\(j\) 列的方案数,直接算不好算,可以用总数减去不合法方案数,则

\[g_{p,i,j} = \begin{pmatrix} i \times j \\ a_p \\ \end{pmatrix} - \sum_{k=1}^{i} \sum_{l=1}^{j} [i \ne k 且 j \ne l] \begin{pmatrix} i \\ k \\ \end{pmatrix} \begin{pmatrix} j \\ l \\ \end{pmatrix} g_{p,k,l} \]

最后注意边界

图计数

首先发现图由若干个链和环组成,连通块大小恰好为 \(l\) 不好求,考虑转化为连通块大小 \(\le l\),则答案为 \(solve(l) - solve(l-1)\)

可以定义状态 \(f_{i,j}\) 表示选了 \(i\) 个点和 \(j\) 条边的方案数,则枚举添加的连通块大小即可,注意一元链和二元环的情况

(\(x\) 个点的链的总数为 \(\frac{x!}{2}\), \(x\) 个点的环的总数有 \(\frac{(x-1)!}{2}\))

转移方程为

\[f_{i,j} = \sum_{k=1}^{l} f_{i-k,j-(k-1)} \]

http://www.gsyq.cn/news/8274.html

相关文章:

  • sign up - Gon
  • Codeforces Round 1051 (Div. 2) A~D2
  • 国际服务器(VPS):泰国、印尼、菲律宾、马来西亚、香港、台湾、新加坡、日本、美国、英国等。
  • 缓存常见问题
  • ctfshow 电子取证
  • 插入排序与希尔排序 - 实践
  • IIS 部署 asp.net core 实用的方案时,出现500.19、500.31问题的解决方案
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • 图解支付系统账务系统核心设计 - 智慧园区
  • 解码C语言结构体
  • 软件工程学习日志2025.9.19
  • ECT-OS-JiuHuaShan 框架元推理,是人类良医与福音
  • upload-labs全通关
  • 操作系统,知识体系一共包含哪些部分? - 实践
  • vscode 下载 VS Code Server 卡住(无需手动下载)
  • 查询本地IPV6 地址
  • 实用指南:Android中handler机制
  • 缺失的第一个正数-leetcode
  • 实用指南:设计模式:建造者模式
  • 04_Redis凭啥这么牛:核心特性剖析
  • BGP路由属性与选路-1
  • 【CV】图像超分辨率的一些基础概念
  • Python面试题及详细答案150道(116-125) -- 性能优化与调试篇 - 实践
  • 物联网摄像头硬件设计秘籍:低成本与低功耗的平衡之道
  • 关于网络社交
  • 【c++进阶系列】:万字详解AVL树(附源码实现) - 教程
  • 【JAVA接口自动化】JAVA如何读取Yaml文档
  • 完整教程:uni-app 常用钩子函数:从场景到实战,掌握开发核心
  • 总结RocketMQ中的常见问题