1192:放苹果
时间限制: 1000 ms ??? ??? 内存限制: 65536 KB 提交数: 11283 ??? 通过数: 6876
【题目描述】
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
【输入】
第一行是测试数据的数目t(0<=t<=20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
【输出】
【输入样例】
1
7 3
【输出样例】
8
【AC代码】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e3+10;
const int INF=0x3f3f3f3f;
int a[N][N],n;
void check()//这道题对新手不太友好
{
a[0][0]=1;//但也就普及组的难度吧
for(int i=0;i<=10;i++)//不算太难
{
for(int j=0;j<=10;j++)
{
if(i==1||j==1)a[i][j]=1;
else
{
if(i<j)a[i][j]=a[i][j-1];
else a[i][j]=a[i-j][j]+a[i][j-1];
}
}
}
}
int main(int argc,char **argv)
{
cin>>n;
check();
while(n--)
{
int m,x;
cin>>m>>x;
cout<<a[m][x]<<"\n";
}
return 0;
}
?
|