有关计数问题的DP 划分数
2024-09-03 02:42:17
有n个无差别的物品,将它们划分成不超过m组。求出划分方法数模M的余数。
输入:
3 4 10000
输出:
4(1+1+2=1+3=2+2=4)
定义:dp[i][j] = j的i划分的总数
#include <cstdio>
#include <algorithm>
using namespace std; int n, m, M;
int dp[1000][1000]; void solve()
{
dp[0][0] = 1;
for (int i = 1; i <= m; i++){
for (int j = 0; j <= n; j++){
if (j - i >= 0){
dp[i][j] = (dp[i - 1][j] + dp[i][j - i]) % M;
}
else{
dp[i][j] = dp[i - 1][j];
}
}
}
printf("%d\n", dp[m][n]);
} int main()
{
while (scanf("%d%d%d", &m, &n, &M) != EOF){
solve();
}
return 0;
}
最新文章
- pandas处理数据
- Numpy Study 2----* dot multiply区别
- 压力测试报出503错误---ASP.NET支持大并发的相关配置
- 安装SQL Server 2008 R2 Enterprise错误:&#39;&#39; is not a valid login or you do not have permission
- libSVM的数据格式
- IPC——数据报套接字通信
- 优化Laravel网站打开速度
- Xcode7,消失的pin菜单(Editor->;pin)
- 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
- Cache-control
- gen_create_syn.sql
- c#获取数组中最大的元素
- Automata
- java 三大框架
- rsync 密钥文件错误问题总结
- DNS 原理
- Python基础教程 - Tdcqma
- day02-python与变量
- L305 发邮件15分钟
- P问题,NP问题,NPC问题,NP-hard问题