爱学习的站长www.mmic.net.cn

www.mmic.net.cn 欢迎学习共同成长
公告信息
www.mmic.net.cn 欢迎学习共同成长
文章分类
文章档案
文章
组合问题 contest4 的问题
2011/8/3 23:59:53

Description

有n 种颜色的球,每种颜色的球的个数有任意多个,从中取m个,问有多少种取法

Input

每行2个正整数 n,m(<=31) ,n=0,m=0结束. 

Output

输出有多少种取法

Sample Input

2 2 3 3 0 0

Sample Output

3 10
#include<stdio.h>
long long m1[40],m2[40],n,m;
void gf( )
{
for( long long i = 0; i < 40; ++i )
m1[i]
= 0,m2[i] = 0;m1[0] = 1;
for( long long i = 1; i <= n; ++i )
{
long long j;
for( j = 0; j <= m;++j )
for( long long k = 0; k + j <= m; k += 1 )
m2[j
+k] += m1[j];
for( j = 0; j <= m; ++j )
m1[j]
= m2[j],m2[j] = 0;
}
}
int main( )
{
while( scanf( "%ld%ld",&n,&m ) ,n |m )
{
gf( );
if( m == 0 || n == 0 )
puts(
"0" );
else
printf(
"%ld\n",m1[m] );
}
return 0;
}
/**************************************************************
    Problem: 1574
    User: HUT_TEAM1
    Language: C++
    Result: Accepted
    Time:4 ms
    Memory:888 kb
****************************************************************/

引自:ic买卖

新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"
 技术   浏览(3254)   评论(3)   关键字
游客[注册][222.240.156.*] : 2011/8/4 11:57:13
ssssss
游客[注册][222.240.156.*] : 2011/8/4 11:56:46
fff
游客[注册][222.240.156.*] : 2011/8/4 11:56:28
sss
  
Copyright © 2010-2020 power by CYQ.Blog - 秋色园 v2.0 All Rights Reserved