B. Move and Turn

https://codeforces.ml/contest/1459/problem/B

思路:
当n为偶数,令p=n/2,可以分成走p步竖走p步横,在一个轴中从0开始p步可以到p,p-2,…,0,…,-p.最终有p+1个位置.所以竖和横一起有(p+1)^2个位置。
当n为偶数,可以分为p步竖p+1步横,或p+1步竖p步横。故总位置为(p+1)*(p+2)*2。

Code:

	#include<iostream>
	using namespace std;

	int main()
	{
    
    
		int n;cin >> n;
		int p = n / 2;
		if (n % 2 == 0)cout << (p + 1) * (p + 1);
		else cout << 2 * (p + 1) * (p + 2);
	}

猜你喜欢

转载自blog.csdn.net/asbbv/article/details/111707640