8635 气球

 

8635 气球

该题有题解

时间限制:500MS  内存限制:1000K
提交次数:204 通过次数:58

题型: 编程题   语言: G++;GCC

 

Description

    一天,OYY 从外面打完比赛回来,手上拿了很多个气球,颜色各不相同。他见到我,就说,你看,我拿了很多气球!
我膜拜死了!!然后他就问了我一个问题,如果把这里的气球分成若干份。有多少种分法呢?
    由于我数学非常菜,顿时头晕了,因此希望大家能帮我解答这个问题(@_@))



输入格式

输入数据有2行
第1 行有两个数n,m,分别代表oyy 手上的气球个数和分的份数(n<=10,m<=5)
第2 行有m 个数,分别代表每一份的个数,保证总个数等于n


输出格式

输出数据有1行,输出一个数代表不同分法的总数。


 

输入样例

3 1
3


 

输出样例

1


 

提示

Sample Input2:
4 2
2 2
Sample Output2:
3


 

来源

 Ick2 

 

作者

 admin

    运用数学的平均分配原则,数据数组结尾没有'\0'

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5     int n,m,a[5],b[15]={0},i,j,x,top;
 6     scanf("%d%d",&n,&m);
 7     for(i=0;i<m;i++)
 8         {scanf("%d",&a[i]);b[a[i]]+=1;}
 9         /*for(i=0;i<m;i++)
10         printf("%d ",a[i]);
11         printf("\n");*/
12 
13         int sum1=1;
14         for(i=0;i<m;i++)
15         {
16             top=a[i];
17             for(j=0;j<top;j++)
18                 sum1=sum1*(n-j);
19 
20                n=n-a[i];
21         }
22         for(i=0;i<m;i++)
23         {
24             top=a[i];
25             for(j=0;j<top;j++)
26                 sum1=sum1/(top-j);
27                n=n-a[i];
28         }
29 
30 
31 
32         for(i=0;i<m;i++)
33         {
34             for(j=i+1;j<m;j++)
35             {
36                 if(a[j]==a[i])
37                     {a[j]=0;
38                     continue;}
39             }
40         }
41 
42 
43        x=0;
44         for(i=0;i<m;i++)
45         {
46             if(a[i]==0)
47             {
48                 i++;
49                 continue;
50             }
51             else
52             {
53             a[x]=a[i];
54             x++;
55             i++;}
56         }
57 
58       /*for(i=0;i<x;i++)
59         printf("%d ",a[i]);
60         printf("\n");*/
61 
62     int sum2=1;
63         for(i=0;i<x;i++)
64         {
65 
66             for(j=0;j<b[a[i]];j++)
67             {
68                 sum2=sum2*(b[a[i]]-j);
69             }
70         }
71 
72         printf("%d",sum1/sum2);
73       return 0;
74 }
View Code

 

posted @ 2015-11-24 19:20  keven_susu  阅读(341)  评论(1)    收藏  举报