放苹果
Time Limit:10000MS Memory Limit:65536K Total Submit:25 Accepted:12 Case Time Limit:1000MS
Description
一天,Formiko由于成绩优秀,得到了何老板赏赐的m个完全相同的苹果。他觉得何老板赏赐的东西十分有纪念价值,就准备把这些苹果放到n个完全相同的盘子里保存起来。但这时患有重度强迫症的Formiko想知道将m个苹果放入n个盘子共有多少种放的方案,否则他就不能放入了(悲剧啊!)。但是苹果和盘子也许有很多,显然方案就会有很多,Formiko不能把所有的方案数全部数清楚,所以这个艰巨而又坑壁的任务就交给你了。(答案对1000007取模) 但Formiko还是没有如此作死地把任务全部交给你,他给了你两点十分重要的提示提示:1、允许有的盘子空着不放;2、例如5,1,1和1,1,5是同一种放法。
Input
一行,两个整数m,n,分别表示m个苹果和n个盘子。
Output
一行,一个整数ans,表述方案总数。
Sample Input
7 3
Sample Output
8
Hint
1<=m,n<=2000
#include<cstdio> #define mod 1000007 using namespace std; int n,m; int f[2002][2002]; int main(){ scanf("%d%d",&m,&n); int i,j; for(i=1;i<=n;i++)f[0][i]=1; for(i=1;i<=m;i++)f[i][1]=1; for(i=1;i<=m;i++) for(j=1;j<=n;j++){ f[i][j]=f[i][j-1]; if(i>=j)f[i][j]+=f[i-j][j];//递推 f[i][j]%=mod; } printf("%d",f[m][n]); }
NKOI 3526 放苹果(强数据版)
最新推荐文章于 2023-08-26 16:13:27 发布