COJ 1722 漫漫求学路

#include 
#include 
#include 
using namespace std;
const int N = 35;
long long m[N][2];
long long n;
int main()
{
	while(scanf("%lld", &n) != EOF)
	{
		n++;
		for(int i = 0; i < N; i++)
		{
			m[i][0] = 1;
			m[i][1] = 1;
		}
		for(int i = 1; i < n; i++)
		{
			for(int j = 0; j < n-i; j++)
			{
				if(j == 0)
				{
					m[j][i&0x1] = m[j+1][(i-1)&0x1];
				}
				else
				{
					m[j][i&0x1] = m[j+1][(i-1)&0x1] + m[j-1][i&0x1];
				}
			}
		}
		
		printf("%lld\n", m[0][(n-1)&0x1]);
	}
	return 0;
}

你可能感兴趣的:(ACM)