ACM_支离破碎(递推dp)
支离破碎
Time Limit: 4000/2000ms (Java/Others)
Problem Description:
远古时期有一位魔王想向一座宫殿里的公主求婚。为了考验魔王的智力,太后给了他这样一道题:给出一串珠子(大小相同)共 n 个,现在要求魔王将所有的珠子分成不超过(<=)m 堆并求出所有可能的总情况数。考虑到m,n较大时,整座宫殿都可能放不下,现在只需要他求出总情况数 mod M 的答案,聪明的你能帮魔王解决这个问题吗?
Input:
第一行输入两个整数 n 和 m.第二行输入 M .其中:1<=m<=n<=10000;2<=M<=10000.
Output:
输出所有可能的情况数 mod M的值.
Sample Input:
4 3
100
4 2
100
100 20
10000
Sample Output:
4
3
2873
解题思路:题目的意思就是有m个珠子放在n个堆(盘子)里,允许有的盘子空着不放,问有多少种不同的分法。此题解法跟这篇文章一样,博文链接:ACM_递推题目系列之三放苹果
AC代码(1533ms):
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int m,n,mod,dp[maxn][maxn];
int main(){
while(cin>>m>>n>>mod){
for(int i=;i<=m;++i){dp[i][]=;dp[i][]=;}
for(int i=;i<=n;++i)dp[][i]=;
for(int i=;i<=m;++i){
for(int j=;j<=n;++j){
if(i<j)dp[i][j]=dp[i][i];
else dp[i][j]=dp[i][j-]%mod+dp[i-j][j]%mod;
//else dp[i][j]=(dp[i][j-1]%mod+dp[i-j][j]%mod)%mod;//这样会超时
}
}
cout<<dp[m][n]%mod<<endl;//注意最后一步要取模
}
return ;
}
ACM_支离破碎(递推dp)的更多相关文章
- 递推DP URAL 1167 Bicolored Horses
题目传送门 题意:k个马棚,n条马,黑马1, 白马0,每个马棚unhappy指数:黑马数*白马数,问最小的unhappy值是多少分析:dp[i][j] 表示第i个马棚放j只马的最小unhappy值,状 ...
- 递推DP URAL 1017 Staircases
题目传送门 /* 题意:给n块砖头,问能组成多少个楼梯,楼梯至少两层,且每层至少一块砖头,层与层之间数目不能相等! 递推DP:dp[i][j] 表示总共i块砖头,最后一列的砖头数是j块的方案数 状态转 ...
- 递推DP URAL 1260 Nudnik Photographer
题目传送门 /* 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 */ #include <cstdio> #include <algorithm> ...
- 递推DP URAL 1353 Milliard Vasya's Function
题目传送门 /* 题意:1~1e9的数字里,各个位数数字相加和为s的个数 递推DP:dp[i][j] 表示i位数字,当前数字和为j的个数 状态转移方程:dp[i][j] += dp[i-1][j-k] ...
- 递推DP URAL 1119 Metro
题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...
- 递推DP 赛码 1005 Game
题目传送门 /* 递推DP:官方题解 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩 ...
- 递推DP HDOJ 5328 Problem Killer
题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...
- hdu1978(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始:外循环扫描所有点dp[x][ ...
- 递推DP URAL 1031 Railway Tickets
题目传送门 /* 简单递推DP:读题烦!在区间内的都更新一遍,dp[]初始化INF 注意:s1与s2大小不一定,坑! 详细解释:http://blog.csdn.net/kk303/article/d ...
- 递推DP UVA 607 Scheduling Lectures
题目传送门 题意:教授给学生上课,有n个主题,每个主题有ti时间,上课有两个限制:1. 每个主题只能在一节课内讲完,不能分开在多节课:2. 必须按主题顺序讲,不能打乱.一节课L时间,如果提前下课了,按 ...
随机推荐
- 我的web前端自学之路-心得篇:我为什么要学习web前端?
时光如流水,转眼间,自己已经是大三的学长了,看着一个个学弟学妹,心中有种莫名的感觉,很怀念大学的前两年时光,但也很憧憬着自己的未来,自己将要去经历很多从未经历的事.我是我们学校信科院的一名学生,在编程 ...
- Memcached 之增删改查命令
memcache是高性能 ,分布式的内存对象缓存系统,非关系型数据库. 一.增 语法:add key flag expire length key:值的一个名字 flag:一个标志,是一个正整 ...
- 深入了解Spring Boot 核心注解原理
SpringBoot目前是如火如荼,所以今天就跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到 ...
- mac上如何设置ssh不断掉,并且session保持
➜ ~ pwd /Users/muahao ➜ ~ cat ~/.ssh/config Host * ServerAliveInterval 60 ControlMaster auto Control ...
- C#那20道题
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- [bzoj1050 HAOI2006] 旅行comf (kruskal)
传送门 Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得 ...
- Unity中使用摇杆控制
Unity中使用摇杆控制 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50 ...
- ik分词器各版本下载地址
ik分词器各个版本下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases
- Windows 2003 IIS 不支持ASP的问题
Windows 2003 IIS 不支持ASP的问题 问题: HTTP 错误 404 - 文件或目录未找到. Internet 信息服务 (IIS) 第一步,启用Asp,进入:控制面板 -> 管 ...
- 洛谷 P2764 LibreOJ 6002 最小路径覆盖问题
题目描述 «问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任何一个顶点开 ...