P1655 小朋友的球

题目描述

@发源于 小朋友最近特别喜欢球。有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天不好好学习,只会上B站看游泳教练,于是他向你求助。

输入输出格式

输入格式:

多组数据,每行两个数N,M。

输出格式:

每组数据一行,表示方案数。

输入输出样例

输入样例#1:

4 2
1 1
输出样例#1:

7
1

说明

【样例解释】

N=4,M=2

1,2 3 4

2,1 3 4

3,1 2 4

4,1 2 3

1 2,3 4

1 3,2 4

1 4,2 3

对于20%的数据,满足1≤N,M≤10;

对于100%的数据,满足1≤N,M≤100,数据组数≤10。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,f[][];
int stirling(int a,int b){
if(f[a][b]!=-)return f[a][b];
if(b==)return f[a][b]=;
if(a==b)return f[a][b]=;
if(a==)return f[a][b]=;
return f[a][b]=b*stirling(a-,b)+stirling(a-,b-);
}
int main(){
memset(f,-,sizeof(f));
while(scanf("%d%d",&n,&m)!=EOF){
printf("%d\n",stirling(n,m));
}
}

20分 不加高精

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[],b[],c[];
int n,m;
struct node{
int len,zu[];
node operator + (const node x)const{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
for(int i=,j=len;i<=len;i++,j--)a[i]=zu[j];
for(int i=,j=x.len;i<=x.len;i++,j--)b[i]=x.zu[j];
int l=max(len,x.len);
for(int i=;i<=l;i++){
c[i]+=a[i]+b[i];
c[i+]+=c[i]/;
c[i]=c[i]%;
}
while(c[l+]){
l++;
c[l+]+=c[l]/;
c[l]%=;
}
node res;
res.len=l;
for(int i=,j=l;i<=l;i++,j--)res.zu[i]=c[j];
return res;
}
node operator * (const int x)const{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=,j=len;i<=len;i++,j--)a[i]=zu[j];
int l=len;
for(int i=;i<=l;i++){
b[i]+=a[i]*x;
b[i+]+=b[i]/;
b[i]%=;
}
while(b[l+]){
l++;
b[l+]+=b[l]/;
b[l]=b[l]%;
}
node res;
res.len=l;
for(int i=,j=l;i<=l;i++,j--)res.zu[i]=b[j];
return res;
}
}f[][];
node stirling(int x,int y){
if(f[x][y].len!=)return f[x][y];
if(x==||y==){
f[x][y].len=;
f[x][y].zu[]=;
return f[x][y];
}
if(x==y){
f[x][y].len=;
f[x][y].zu[]=;
return f[x][y];
}
f[x][y]=stirling(x-,y)*y+stirling(x-,y-);
return f[x][y];
}
int main(){
while(scanf("%d%d",&n,&m)!=EOF){
node ans=stirling(n,m);
for(int i=;i<=ans.len;i++)printf("%d",ans.zu[i]);
printf("\n");
}
}

100分 加高精

洛谷P1655 小朋友的球(Stirling数)的更多相关文章

  1. 洛谷——P1655 小朋友的球

    P1655 小朋友的球 题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝 ...

  2. 洛谷 P1655 小朋友的球

    题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天 ...

  3. P1655 小朋友的球

    P1655 小朋友的球 题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝 ...

  4. 洛谷——P1287 盒子与球

    P1287 盒子与球 题目描述 现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子.问有多少种方法? 例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分 ...

  5. 洛谷【P1004】方格取数

    浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  6. 洛谷 P1287 盒子与球

    P1287 盒子与球 题目描述 现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子.问有多少种方法? 例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分 ...

  7. 洛谷P1982 小朋友的数字——题解

    题目传送 简单地说,这题就是让我们求前i个数的最大子串和和最值. 对于最大子串和,我们可以设一个变量qian,表示以当前元素结尾的最大子串的子串和.若搜索完第i-1个小朋友,现在看到第i个小朋友时,若 ...

  8. 洛谷 P1066 2^k进制数

    P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...

  9. 洛谷P1066 2^k进制数(题解)(递推版)

    https://www.luogu.org/problemnew/show/P1066(题目传送) (题解)https://www.luogu.org/problemnew/solution/P106 ...

随机推荐

  1. Android系统文件目录

  2. Makefile中的$(@:_config=)什么意思?【转】

    本文转载自:https://blog.csdn.net/a8082649/article/details/24252093 已经编译出bin文件了,现在研究一下makefile,把遇到的问题记录下来: ...

  3. 51Nod 1084 矩阵取数问题 V2 —— 最小费用最大流 or 多线程DP

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1084 1084 矩阵取数问题 V2  基准时间限制:2 秒 空 ...

  4. Kbuntu16.04添加工作空间

    工作空间是一个非常方便的功能,可以让开发者每次只聚焦一个屏幕,又能在各个空间中来回切换.有一种屏幕被扩展的感觉. Kbuntu默认只有一个工作空间,需要按如下方式添加: System settings ...

  5. Java_Path_01_路径问题

    二.参考资料 1.java 路径问题 2.Java路径问题最终解决方案—可定位所有资源的相对路径寻址 3.Java获取文件的路径 4.Thread.currentThread().getContext ...

  6. listen 75

    Hot Jupiters Smarten Search For Other Earths Scientists are looking for Earth like planets around ot ...

  7. HDU4080Stammering Aliens(后缀数组+二分)

    However, all efforts to decode their messages have failed so far because, as luck would have it, the ...

  8. .NETFramework:WebClient

    ylbtech-.NETFramework:WebClient 1.程序集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5 ...

  9. java web路径分析

    绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径 相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径 硬盘路径:以盘符开头的路 ...

  10. AAAAAA

    有可能被立案调查.暂停上市.退市风险警示*ST.特别处理ST的公司:银鸽投资(SH:600069).天山生物(SZ:300313).金贵银业(SZ:002716).美盛文化(SZ:002699).未名 ...