HDU-计算机学院大学生程序设计竞赛(2015’11)1005 ACM组队安排(排列组合)


1001-搬砖(贪心):http://blog.csdn.net/idealism_xxm/article/details/50097051
1002-投币洗衣机(模拟):http://blog.csdn.net/idealism_xxm/article/details/50097231
1003-玩骰子(枚举) :http://blog.csdn.net/idealism_xxm/article/details/50097691
1004-质方数(打表):http://blog.csdn.net/idealism_xxm/article/details/50097255
1006-逆袭指数(枚举):http://blog.csdn.net/idealism_xxm/article/details/50098201
1007-油菜花王国(并查集):http://blog.csdn.net/idealism_xxm/article/details/50097473
1008-游乐场(贪心):http://blog.csdn.net/idealism_xxm/article/details/50097577

ACM组队安排

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)


Problem Description
  ACM亚洲区比赛结束,意味着开始备战明年的浙江省大学生程序设计竞赛了!
  杭州电子科技大学ACM集训队也准备开始组队。
  教练想把所有的n个队员组成若干支队伍,原则是每支队伍至少一人,最多三人。
  现在问题来了:如果已知集训队队员的数量n,请你帮教练计算出所有可能的组队方案有多少种。

  特别说明:
  队伍没有编号,即如果有A,B,C三人,{A}{BC}与{BC}{A}是同一种组队情况。
 

Input
输入包含多组测试数据(约1000组),每组数据占一行,包含一个数字n(0<=n<=20),表示ACM集训队的队员人数;n为0,表示输入结束。
 

Output
请输出n个队员所有可能的组队方案数,每组输出占一行。
 

Sample Input
 
   
1 2 3 4 5 0
 

Sample Output
 
   
1 2 5 14 46

这几天遇到的DP太多了,第一反应就是DP,感觉和这道DP题差不多:XDU-1112 Too Stupid(DP)

但一有时间限制,状态直接掉谷底,都增至三维了,还没想出好的转移方式,只得先放弃做其他题


看打别人直接用数学解法,才意识到数据范围很小,直接算即可

n个人中有i个人一人一组,2*j个人两人一组,3*k个人三人一组(i+2*j+3*k=n),枚举i,j,k,用排列组合公式直接算结果即可

幸亏还记得点高中数学:无序地将mn分成m等份=[C(mn,2)*C(mn-2,2)*...*C(2,2)]/A(m,m)

计算公式:f[n]=∑{ com(n,i)*com(n-i,j*2)*equa(j*2,2)/fac[j]*equa(k*3,3)/fac[k] },(i+2*j+3*k=n)

一人一组:com(n,i)    从n个人中选i个人

两人一组:com(n-i,j*2)*equa(j*2,2)/fac[j]    从n-i个人中选出2*j个人,并且将这2*j个人无序地平分成j组

三人一组:equa(k*3,3)/fac[k]   ,将剩余的3*k个人无序地平分成k组

#include 
#include 
#include 

using namespace std;

long long n,f[25],t,fac[11];

long long com(long long n,long long r) {//组合数,计算C(n,r)
    if(r==0)
        return 1;
    if(n-r


待完成解法:DP


1001-搬砖(贪心):http://blog.csdn.net/idealism_xxm/article/details/50097051
1002-投币洗衣机(模拟):http://blog.csdn.net/idealism_xxm/article/details/50097231
1003-玩骰子(枚举) :http://blog.csdn.net/idealism_xxm/article/details/50097691
1004-质方数(打表):http://blog.csdn.net/idealism_xxm/article/details/50097255
1005-ACM组队安排(排列组合):http://blog.csdn.net/idealism_xxm/article/details/50097801
1006-逆袭指数(枚举):http://blog.csdn.net/idealism_xxm/article/details/50098201
1007-油菜花王国(并查集):http://blog.csdn.net/idealism_xxm/article/details/50097473
1008-游乐场(贪心):http://blog.csdn.net/idealism_xxm/article/details/50097577

你可能感兴趣的:(其他,存在待完成解法,HDU)