码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 1292 "下沙野骆驼"ACM夏令营->DP

时间:2015-03-16 14:32:10      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:acm   c++   算法   编程   c   

解析:一支队伍分组的情况,如果这支队伍有n个人,就有n种情况分别是一个组,两个组,。。。。。。;
i个人分成j组有两种方式:

1、i-1个人分成j-1组之后,第i个人独立分成一组;DP[i][j]=DP[i-1][j-1]。

2、i-1个人分成j组,第i个人随便加入j组中的任何一组;DP[i][j]=DP[i-1][j]*j。

3、因此状态转移方程为DP[i][j]=DP[i-1][j-1]+DP[i-1][j]*j。

#include<iostream>   
using namespace std;

int main()  
{
	__int64 a[26][26],res;
	int c,i,j,T;

	memset(a,0,sizeof(a));
	a[1][1]=1;
	for(i=2;i<=25;i++)
		for(j=1;j<=25;j++)
			a[i][j]=a[i-1][j-1]+a[i-1][j]*j;

	cin>>T;
	while(T--)
	{
		cin>>c;
		for(i=1,res=0;i<=c;i++)
			res+=a[c][i];
		printf("%I64d\n",res);
	}
    return 0;  
}


HDU ACM 1292 "下沙野骆驼"ACM夏令营->DP

标签:acm   c++   算法   编程   c   

原文地址:http://blog.csdn.net/a809146548/article/details/44305437

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!