球球网− hdu 2067 小兔的棋盘

http://acm.hdu.edu.cn/showproblem.php?pid=2067

小兔的棋盘
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1432 Accepted Submission(s): 848

Problem Description
小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!

Input
每次输入一个数n(1<><>

Output
对于每个输入数据输出路径数,具体格式看Sample。

Sample Input
1
3
12
-1

Sample Output
1 1 2
2 3 10
3 12 416024

Author
Rabbit

Source
RPG专场练习赛

Recommend
lcy

Catalan数。。
令h(1)=1,h(0)=1,catalan数满足递归式:
  h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2)
  另类递归式:
  h(n)=((4*n-2)/(n+1))*h(n-1);
  该递推关系的解为:
  h(n)=C(2n,n)/(n+1) (n=1,2,3,…)
其实吧 不是很理解。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
int main()
{
	__int64 a[37][37]={0};
	int i,j,n,t=0;
	a[0][0]=0;
	a[0][1]=1;
	a[1][1]=2;
	for(i=2;i<37;i++)
	{
		a[i][0]=1;
		for(j=1;j<i-1;j++)
			a[i][j]=a[i][j-1]+a[i-1][j];
		a[i][i-1]=a[i][i-2]+a[i-1][i-1]/2;
        a[i][i]=2*a[i][i-2]+a[i-1][i-1];
 
	}
	while(scanf("%d",&n)&&n!=-1)
	{
		printf("%d %d %I64d\n",++t,n,a[n][n]);
	}
	return 0;
}

One Response to “hdu 2067 小兔的棋盘”


  1. 传说您过了?

    []

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

郑重声明:资讯 【球球网− hdu 2067 小兔的棋盘】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——