天天看点

Problem 15 Lattice paths (组合数学)

Lattice paths

Problem 15

Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.

Problem 15 Lattice paths (组合数学)

How many such routes are there through a 20×20 grid?

Answer: 137846528820
Completed on Wed, 26 Oct 2016, 14:59

题解:组合问题。在每一个路径中,都会有20次横向和20次纵向移动。如果把横向移动记为1,纵向移动记为0,那么问题就变成一个40位数字中有20个1和20个0的组合数。所以答案就是C(20,40)。

代码:

#include<cstdio>
#include<iostream>
using namespace std;

int main()
{
	long long ans1=1;
	int j=1;
	for(int i=21;i<=40;i++)
	{
		ans1=(ans1*i)/j;
		j++;
		if(j>20)break;
	}
	cout<<ans1<<endl;
	return 0;
}