Codeforces Round #691 (Div. 2) B. Move and Turn
链接
https://codeforces.com/contest/1459/problem/B
题意
一个机器人可以水平或垂直移动,不能连续水平或连续垂直移动,若移动 $n$ 步,能到达多少个不同的终点?
思路
- 当 $n$ 为偶数时:
水平移动 $n/2$ 步,在水平方向上最多可能到达 $n/2+1$ 个终点;
垂直移动 $n/2$ 步,在垂直方向上最多可能到达 $n/2+1$ 个终点。
组合后共有 $(n/2+1)(n/2+1)$ 个点。
- 当 $n$ 为奇数时:
水平移动 $n/2+1$ 步,在水平方向上最多可能到达 $n/2+2$ 个终点;
垂直移动 $n/2$ 步,在垂直方向上最多可能到达 $n/2+1$ 个终点。
组合后共有 $(n/2+1)(n/2+2)$ 个点。
垂直移动 $n/2+1$ 步,在垂直方向上最多可能到达 $n/2+2$ 个终点;
水平移动 $n/2$ 步,在水平方向上最多可能到达 $n/2+1$ 个终点。
组合后共有 $(n/2+1)(n/2+2)$ 个点。
这些点是不重复的,所以共有 $2(n/2+1)(n/2+2)$ 个点。
代码
1 |
|