数数题(计数类 DP)做题记录

CF1657E Star MST

我们称张无向完全图是美丽的当且仅当:所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和。

完全图点数为 \(n\),边权 \(\in[1,k]\),\(1\le n,k\le 250\)。

发现所有和 \(1\) 相连的边边权之和等于 MST 的边权之和,即限制这张图的 MST 就是以 \(1\) 为中心的“星星”形状。

所以任意两个点之间的边权一定大于等于他们与 \(1\) 相连的边的边权的最大值。

那么设 \(dp(i,j)\) 表示连了 \(\le i\) 的边权,选择了除了 \(1\) 之外 \(j\) 个点的方案数。

那么枚举状态,将转移表示把边权为 \(i\) 边新加进去,可以得到转移方程:

\[dp(i,j)=\sum_{x=0}^{j}dp(i-1,x)\times \dbinom{j}{x}\times (k-x+1)^{\binom{j}{2}-\binom{x}{2}} \]

总时间复杂度 \(\mathcal{O(n^3)}\)(假设 \(n,k\) 同阶)。

P8096 [USACO22JAN] Drought G

Farmer John 的 \(n(n\le 100)\) 头奶牛站成一排,每一个都有一个饥饿值 \(h_i\),Farmer John 可以每次选择相邻的两头奶牛使她们的饥饿值同时 \(-1\)。

Farmer John 想让他的所有奶牛都有相同的饥饿值,尽管他不知道每头奶牛具体的饥饿值,只知道她们每一头饥饿值的上限 \(H_i(H_i\le 1000)\),使得 \(h_i\le H_i\)。

请计算出所有满足 Farmer John 的要求的 \(n\) 元组 \([h_1,h_2,\cdots,h_n]\) 数量对 \(10^9+7\) 取模的结果。

假设最终都到达的饥饿值为 \(k\),设 \(dp_{i,j}\) 表示前 \(i-1\) 头牛都达到了要求,第 \(i\) 头牛的饥饿值为 \(j\) 的方案数。

那么因为需要让 \(i\) 牛也变成 \(k\),可以列出转移方程:

\[dp_{i,j}\rightarrow\forall j'\in[k,H_{i+1}-j+k]:dp_{i+1,j'} \]

上面的方程可以用前缀和优化实现 \(O(1)\) 转移。

那么最终答案就是 \(dp_{n,k}\)。

由于我们发现如果 \(n\) 是偶数,可以通过 \(\dfrac{n}{2}\) 次操作使所有饥饿值 \(-1\),所以如果 \(n\) 为偶数只用枚举一个 \(k\) 即可。

[USACO22MAR] Pair Programming G

还是不会

P4778 Counting swaps

数数题(计数类 DP)做题记录相关推荐

  1. 【2020数模F奖】 美赛C题参赛感受及做题思路记录【编程手的角度,含大量代码及参考链接】

    目录 写在前面的话 题目分析 [数据清洗] [NLTK] [第一题] [第2题e问] [词云]---wordcloud包 [TF-IDF算法] [第2题a.b.c问]需要先对评论数值化 [Textbl ...

  2. 洛谷P3146 区间dp做题笔记

    不是题解,不是题解,不是题解,纯属个人笔记,不知所言. 传送门:P3146 问:什么时候才能写的一手漂亮的dp? 答:夜深人静之时,魂归故里之日. 此题是一道基础的区间dp的题,看完题解犹豫片刻,之后 ...

  3. dp做题想法(满纸荒唐言)

    又一周很快过去了,说实话这周做题不太多,有舍友过生日的筹划庆祝,也有周六的班级郊游聚会,当然周六可差点把我冻死,天有不测风云吧,之前也没想到会这么冷.当然这些都不是做的少的理由,还是懒吧,害怕遇到困难 ...

  4. HDU--4248、A Famous Stone Collector (计数类dp)

    题目链接 题面: 题意: 有 nnn 种颜色的石子,第 iii 种颜色的石子有 aia_iai​ 个. 我现在要从里面选出若干个石子排成一排,问有多少种不同的序列. 两个序列不同当且仅当长度不同或者至 ...

  5. Acwing900. 整数划分[计数类dp]:完全背包解法

    文章目录 题目分析 完全背包解法 题目链接 题目分析 完全背包解法 请复习完全背包模板完全背包dp优化内有完整标准完全背包的推导过程 状态表示: f[i][j]f[i] [j]f[i][j] 表示从 ...

  6. CF559C-Gerald and Giant Chess【计数类dp】

    正题 上不了Codeforces,就用洛谷了 评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=CF559C 题目大意 H∗WH ...

  7. 【Leetcode栈与队列】1047.删除字符串中的所有相邻重复项 6120.数组能形成多少数对(一些题外话和做题经验!!看作对对碰游戏!!)

    文章目录 题外话 1.游戏开发可能使用栈结构 2.编程语言的一些功能实现也会使用栈结构 Leetcode 1047.删除字符串中的所有相邻重复项 1.问题描述 2.解决方案 Leetcode 6120 ...

  8. POJ - 1737 Connected Graph,Java(计数类DP)

    POJ - 1737 Connected Graph C++高精太难写了,直接用Java的大整数会方便一点 常规方法 import java.io.*; import java.math.BigInt ...

  9. 整数划分(计数类DP)

    题目 一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2+-+nk,其中 n1≥n2≥-≥nk,k≥1. 我们将这样的一种表示称为正整数 n 的一种划分. 现在给定一个正整数 n,请你求 ...

最新文章

  1. TensorFlow csv读取文件数据(代码实现)
  2. Linux 下 PHP 5.2.x 连接 SQL Server 数据库 FreeTDS 配置笔记
  3. Kafka源码深度解析-序列3 -Producer -Java NIO
  4. java nosql_Java EE的NoSQL的未来
  5. 对PostgreSQL SPI例子的学习
  6. c语言输出11258循环,c/c++内存机制(一)(转)
  7. LeetCode 557. 反转字符串中的单词 III(栈)
  8. spring面向AOP之动态代理
  9. svn 合并问题 MERGE of '/svn/web': 200 OK (http://xx.xx.xx.xx)
  10. androidstudio mac mini_苹果M1芯片笔记本能安装运行Android Studio和模拟器吗?能!
  11. ASP+Access数据库的终极安全大法18则(原创)
  12. python后端开发书籍_后端书籍推荐
  13. OracleERP-采购管理
  14. 相似文档查找算法之 simHash
  15. 三菱plc232数据线驱动下载_失易得安卓恢复v5.3.5.0-失易得安卓恢复PC版下载
  16. 南方cass字体样式设置_cass改变字体格式 cass字体样式管理器
  17. windows无法访问共享文件 所有解决方法(非复制粘贴的烂大街处理方法)
  18. httpwatch使用_使用PHP#2自动化HTTPWatch
  19. win10修改用户名/指纹无法置入/用户文件没有重命名的选项
  20. Java——继承的概念

热门文章

  1. matlab提示未定义wc,WooCommerce 教程:修复致命错误调用未定义的函数wc_get_order() - WooCommerce 微站...
  2. 操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符
  3. jbl css-h15,JBL CSS8006BM 天花音箱
  4. java 固定长度队列_如何彻底搞懂 Java 数据结构?|CSDN 博文精选
  5. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
  6. 7-4 N皇后 (28 分)(思路+详解)
  7. [JavaWeb-XML]XML概述
  8. 2021年度训练联盟热身训练赛第一场 H题On Average They‘re Purple(BFS)
  9. sklearn svm如何选择核函数_机器学习之支持向量机多种核模型对比
  10. wordList01