一卡通大冒险(hdu 2512)
{{A},{B},{C}} , {{A,B},{C}}, {{B,C},{A}}, {{A,C},{B}} ,{{A,B,C}} 于是,
这个邪恶计划的组织者wf希望了解,如果ACM训练对里有n位帅哥(即有N张一卡通),那么要把这些一卡通夹到书里有多少种不同的方法。
Input包含多组数据,第一行为n,表示接下来有n组数据。以下每行一个数x,表示共有x张一卡通。(1≤x≤2000).
Output对每组数据,输出一行:不同的方法数,因为这个数可能非常大,我们只需要它除以1000的余数。
Sample Input
4
1
2
3
100
Sample Output
1
2
5
751
题意:换种方式来说,将n个小球放进n个盒子里有多少种方法。
分析:1.如果我们要把n个小球放进m个盒子里,一共有两种情况,一是前i-1个小球放进了m个盒子,此时dp[i][j]=dp[i-1][j]*j,二是前i-1个小球放进了m-1个盒子dp[i][j]=dp[i-1][j-1],每一个子问题都有都有一个相同的子问题
因此dp[i][j]=dp[i-1][j]*j+dp[i-1][j-1];
2.如果我们学过卡特兰数的话,直接上结论可就可以了。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<iostream>
#include<map>
#include<vector>
#define Inf 0x3f3f3f3f
typedef long long ll;
#define PI acos(-1.0)
using namespace std;
const int mod=;
const int MAXN=+;
int dp[MAXN][MAXN];
int main()
{
int m,n,t;
memset(dp,,sizeof(dp));
dp[][]=;
for(int i=;i<=;i++)
{
for(int j=;j<=i;j++)
{
dp[i][j]=(dp[i-][j]%mod*j%mod)%mod+dp[i-][j-]%mod;
}
}
cin>>t;
while(t--)
{
cin>>m;
int sum=;
for(int i=;i<=m;i++)
{
sum+=dp[m][i];
sum%=mod;
}
cout<<sum<<endl;
}
}
一卡通大冒险(hdu 2512)的更多相关文章
- HDU 2512 一卡通大冒险(第二类斯特林数+贝尔数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512 题目大意:因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部 ...
- HDU 2512 一卡通大冒险 (第二类斯特林数)
题目链接:HDU 2512 Problem Description 因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身.某天,他们在机房商量一个绝妙的计划 ...
- HDU 2512 一卡通大冒险(dp)
一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 一卡通大冒险(hdu2512)
一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDUOJ----2512一卡通大冒险
一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU2512 一卡通大冒险 —— 第二类斯特林数
题目链接:https://vjudge.net/problem/HDU-2512 一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
- HDU 2512 一卡通大冒险
我感觉这更像个数学问题. dp[i][j]表示将i件物品分成j组的方案数. 状态转移方程: dp[i][j] = dp[i-1][j-1] + j * dp[i-1][j]; 将i张卡分成j组可以有之 ...
- [HDOJ2512]一卡通大冒险(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512 给一个数n,问1~n这n个数内的划分.设dp(i,j)为i划分为j个集合时有多少个. 初始化条件 ...
- dp 斯特林数 HDU2512一卡通大冒险
这道题其实就是斯特林数,找不同的集合,一共有多少中组法,递推式就是dp[n][k] = dp[n - 1][k - 1] + k * dp[n - 1][k]; 这个式子可以这么解释,dp[n][k] ...
随机推荐
- LeetCode OJ:Add Digits(数字相加)
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...
- How to Have a Healthy Relationship --shanbei 为单身节写
我在扇贝发现一片好文. Sometimes relationships can seem like a lot of work until you sit back and realize just ...
- NTP服务器和国内可用的NTP地址
NTP 是什么? NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备[如计算机.手机]的时间的协议. NTP 实现什么目的? 目的很简单,就是为了提供准确 ...
- HTTP返回结果状态码小结
HTTP 状态码负责表示客户端 HTTP 请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. 一.状态码的类别 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助状态 ...
- hihocoder-1483区间价值 (二分+尺取法)
题目链接: 区间价值 给定n个数A1...An,小Ho想了解AL..AR中有多少对元素值相同.小Ho把这个数目定义为区间[L,R]的价值,用v[L,R]表示. 例如1 1 1 2 2这五个数所组成的区 ...
- opencv 卡尔曼滤波器例子,自己修改过
一.卡尔曼滤波器的理论解释 http://blog.csdn.net/lindazhou2005/article/details/1534234(推荐) 二.代码中一些随机数设置函数,在opencv中 ...
- Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@Previous ...
- webpack新版本4.12应用九(配置文件之入口和上下文(entry and context))
entry 对象是用于 webpack 查找启动并构建 bundle.其上下文是入口文件所处的目录的绝对路径的字符串. context string 基础目录,绝对路径,用于从配置中解析入口起点(en ...
- 系列文章--SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
- css处理最后一个li
.relatebar li{width:98px;height:146px;padding:5px;float:left;border-left:1px solid #ccc;} .relatebar ...