题解:CF2066D1 Club of Young Aircraft Builders (easy version)

news/2025/2/12 18:47:26/文章来源:https://www.cnblogs.com/Ayaka-0928/p/18712010

Statement

有一栋 \(n\) 层的楼,居民们要共同发射至少 \(c\) 架纸飞机,楼层高的居民看不到楼层低的居民发射的纸飞机,每位居民会在自己看到的纸飞机数量至少 \(c\) 后停止,实际上它们总共发射了 \(m\) 个纸飞机,现在你有一个 \(a\) 数组记录了每层楼居民发射的飞机数量,部分 \(a_i\) 缺失了即 \(a_i = 0\),你需要找出填补这些 \(a_i\) 的总方案数,答案对 \(10^9 + 7\) 取模。

在当前问题版本中,所有 \(a_i\) 均为 \(0\)

Solution

\(dp_{i,j}\) 表示第 \(i\) 层楼发射飞机 \(j\) 架,枚举发射的飞机数量,转移方程有:

\[dp_{i,j} \leftarrow dp_{i,j} + \sum\limits_{k=0}^{\min(j,c)}dp_{i-1,j-k} \]

当然你会发现方程缺了什么,注意到我们是从 \(c\) 次发射中选择 \(k\) 次,所以还需要一个系数 \(\binom{c}{k}\),得到最终的柿子:

\[dp_{i,j} \leftarrow dp_{i,j} + \sum\limits_{k=0}^{\min(j,c)}{dp_{i-1,j-k} \times \binom{c}{k}} \]

最后答案即为 \(dp_{n,m}\)

Code

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 1e9 + 7;
int T, n, C, m, A[10005], dp[105][10005], fac[1000005], invfac[1000005];inline int qpow (int x, int k) {int ret = 1;while (k) {if (k & 1) ret = ret * x % MOD;x = x * x % MOD;k >>= 1;}return ret;
}inline void prefac() {fac[0] = invfac[0] = 1;for (int i = 1; i <= 1000000; i ++)fac[i] = fac[i - 1] * i % MOD;invfac[1000000] = qpow (fac[1000000], MOD - 2);for (int i = 999999; i; i --)invfac[i] = invfac[i + 1] * (i + 1) % MOD;
}inline int Com (int n, int m) {if (m < 0 || m > n) return 0;return fac[n] * invfac[m] % MOD * invfac[n - m] % MOD;  
}inline void Dp() {cin >> n >> C >> m;for (int i = 1; i <= m; i ++)cin >> A[i];dp[1][C] = 1;for (int i = 2; i <= n; i ++) {for (int j = C; j <= m; j ++) {for (int k = 0; k <= min (j, C); k ++) {dp[i][j] = (dp[i][j] + Com (C, k) * dp[i - 1][j - k] % MOD) % MOD;}}}cout << dp[n][m] << '\n';for (int i = 1; i <= n; i ++) {for (int j = C; j <= m; j ++) {for (int k = 0; k <= min (j, C); k ++) dp[i][j] = 0;}}
}signed main() {cin.tie (0) -> sync_with_stdio (0);cout.tie (0) -> sync_with_stdio (0);    cin >> T, prefac();while (T --) Dp();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882692.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商家智能助手:多智能体在电商垂域的技术探索

引言 多智能体的架构演进过程: 第一阶段:B商城工单自动回复,LLM和RAG结合知识库应答,无法解决工具调用。 第二阶段:京东招商站,单一Agent处理知识库问答和工具调用,准确率低 & LLM模型幻觉,场景区分度差。 第三阶段:京麦智能助手,引入multi-agent架构,master + …

Agent应用实战:从广告智能助手落地到平台化赋能

前言 自2022年底ChatGPT发布以来,大模型成为非常火爆的话题。如何在生活和工作中把大模型用的更好、更具价值,业界一致认为Agent是其中一个重要的方向。下面就分享一下我们京东广告在Agent应用上的一些实践和经验,希望能给大家带来一定的启发和思考。一、Agent 在京东广告投…

换根 DP:进阶练习笔记

前言观前提醒:本文非新手向文章,不建议作为换根 DP 入门使用。 本文在洛谷专栏、博客园、CSDN同步发送。换根 DP 是树状 DP 的一种,思维难度较高,但是学会以后很套路也很轻松。 例题 P3047 [USACO12FEB] Nearby Cows G对于每个节点求出距离它不超过 \(k\) 的所有节点权值和…

clion 执行CMake 报错:Cannot read xxx\CMakeFiles\TargetDirectories.txt

在Windows下使用Mingw32编译,Clion 执行CMake时报错:D:\Develop\CLion-2021.1.3.win\bin\cmake\win\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" D:\Work\C++Work\HelloWorld -- The C compiler identification is GNU 8.1.0 -- Th…

XXE

XXE漏洞产生原因 XXE漏洞:XML外部实体注入漏洞;应用程序解析XML输入时,没有对上传的XML文件内容进行过滤,没有禁止外部实体的加载,导致可以加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、DOS攻击等。 XXE与HTML XML是可扩展标记语言、重点在传输数据和存储数据…

官媒报纸下载器 | 快速下载电子版报纸

报纸下载器是一款可以快速下载电子版报纸的应用,无需安装双击即可使用。 它支持人民日报、农民日报、经济日报、中国证券报、工人日报、科技日报等多家官方报纸的在线下载。 可选择报纸并设置日期,点击下载按钮后,报纸将以PDF格式下载到本地。 下载进度和版面信息会在底部状…

反序列化

序列化与反序列化 序列化:把一个对象类型的数据转换成字符串(字节流)进行传输,把某个对象系列化成JSON格式或XML格式或者其他序列化格式的字符串过程称为序列化。 反序列化:将字节流或字符串转换为原始的数据结构或对象。 shiro反序列化 shiro-550:shiro < 1.2.5 主要是…

RockyLinux操作系统

RockyLinux操作系统 1 系统介绍 2020 年 12 月 8 日,Red Hat 宣布他们将停止开发 CentOS,CentOS 一直是 Red Hat Enterprise Linux 的生产就绪下游版本,转而支持该作系统的较新的上游开发变体,称为“CentOS Stream”。作为回应,CentOS 的最初创办人 Gregory Kurtzer 在 Ce…

域名解析—互联网世界的导航系统

在互联网的世界里,每个网站都像一座“城市”,而用户要找到这些“城市”,必须依赖一套精准的导航系统——这就是域名解析。无论是浏览网页、发送邮件,还是使用移动应用,域名解析都在背后默默支撑着用户的每一次访问。本文将深入浅出地解析域名解析的原理、流程及其在互联网…

算法备案办理经验分享

算法备案实际办理经验,包含流程、材料和注意事项作为一名算法备案代办服务人员,之前又有一批客户通过了算法备案。趁着最近闲下来,今天就跟大伙分享下我做算法备案的经验,如有任何疑问,欢迎大家直接提问。一、算法备案流程 1.注册与主体信息提交 首先得登录互联网信息服务…

基于Ollama+DeepSeek+AnythingLLM轻松投喂打造本地大模型知识库.250212

第一步,下载开源的[AI]应用程序AnythingLLM 去官网Download AnythingLLM for Desktop下载并安装即可。 第二步,下载Ollama并获取DeepSeek LLM) 为了使用DeepSeek我们需要先下载Ollama并获取DeepSeek。 1、打开 Ollama 的官网http://ollama.com,在官网找到 “Download”,点击…