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

sgu-221 Big Bishops

时间:2015-01-18 14:28:06      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:sgu

 不想说什么了,220-221两道一样的题目,就是一个数据大点,要高精度而已

http://blog.csdn.net/qq_21995319/article/details/42834743



AC代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)>(b)?(b):(a))

using namespace std;
int f[2][110][2510][25]={{{{0}}}};
int ans[200]={0};
int sum[210]={0};
int sums=0;
int n,k;
//ans+=f[1][p][q]*f[0][2*n-1-p][k-q];

void Addans(int q)
{
	int g=f[1][sums][q][0]+f[0][2*n-1-sums][k-q][0]-1;
	ans[0]=MAX(ans[0],g);
	for(int i=1;i<=f[1][sums][q][0];i++)
	{
		for(int j=1;j<=f[0][2*n-1-sums][k-q][0];j++)
		{
			ans[i+j-1]+=f[1][sums][q][i]*f[0][2*n-1-sums][k-q][j];
			ans[i+j]+=ans[i+j-1]/10000;
			ans[i+j-1]%=10000;
		}
	}
	for(int i=1;i<=ans[0];i++)
	{
		ans[i+1]+=ans[i]/10000;
		ans[i]%=10000;
	}
	for(int i=ans[0]+1;ans[i]>0;i++,ans[0]++)
	{
		ans[i+1]+=ans[i]/10000;
		ans[i]%=10000;
	}
	return;
}
void Add(int K,int p,int q)
{
	f[K][p][q][0]=MAX(f[K][p-1][q][0],f[K][p-1][q-1][0]);
	for(int i=1;i<=f[K][p][q][0];i++)
	{
		f[K][p][q][i]+=f[K][p-1][q][i]+f[K][p-1][q-1][i]*(sum[p]-q+1);
		f[K][p][q][i+1]+=f[K][p][q][i]/10000;
		f[K][p][q][i]%=10000;
	}
	for(int i=f[K][p][q][0]+1;f[K][p][q][i]>0;i++,f[K][p][q][0]++)
	{
		f[K][p][q][i+1]+=f[K][p][q][i]/10000;
		f[K][p][q][i]%=10000;
	}
	return;
}

void done(int K)
{
	sums=0;
	for(int i=K;i<=n;i+=2)
	{
		sum[++sums]=i;
		if(i!=n) sum[++sums]=i;
	}
	f[K-1][0][0][0]=1;
	f[K-1][0][0][1]=1;
	for(int i=1;i<=sums;i++)
		for(int j=0;j<=k;j++)
			if(sum[i]>=j-1)
				Add(K-1,i,j);
	return;
}

int main()
{
	cin>>n>>k;
	
	done(1);
	done(2);
	
	for(int i=0;i<=k;i++)
		Addans(i);
	
	for(;ans[ans[0]]==0 && ans[0]>1;ans[0]--);
	printf("%d",ans[ans[0]]);
	for(int i=ans[0]-1;i>0;i--)
		printf("%04d",ans[i]);
	return 0;
}


sgu-221 Big Bishops

标签:sgu

原文地址:http://blog.csdn.net/qq_21995319/article/details/42835165

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