中文题目- -,终于有个中文的,啥都不说了啊!!!
放苹果
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 26729 | Accepted: 16985 |
Description
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
Input
第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
Output
对输入的每组数据M和N,用一行输出相应的K。
Sample Input
1 7 3
Sample Output
8#include<stdio.h>
#include<string.h>
#define maxn 20
int sum;
void Find(int M, int N, int K)
{
if(N < 0)return ;
if(M == 0&& N >= 0)
{
sum++;
return ;
}
for(int i=K; i<=M; i++)
{
Find(M-i, N-1, i);
}
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int M, N;
scanf("%d%d", &M, &N);
sum = 0;
Find(M, N, 1);
printf("%d ", sum);
}
return 0;
}
#define maxn 20
int sum;
void Find(int M, int N, int K)
{
if(N < 0)return ;
if(M == 0&& N >= 0)
{
sum++;
return ;
}
for(int i=K; i<=M; i++)
{
Find(M-i, N-1, i);
}
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int M, N;
scanf("%d%d", &M, &N);
sum = 0;
Find(M, N, 1);
printf("%d ", sum);
}
return 0;
}
题目分析:
这不就是排列组合????????????????????好吧,试试吧,我决定还是用深搜 - -
///////////////////////////////////////////////////////////////////////////////////////////////////////////