1459B - Move and Turn

题目链接


题意:

一个机器人站在无限二维平面的原点。机器人每秒精确移动四个主要方向之一:北、南、西和东。第一步,机器人可以选择四个方向中的任何一个,但在每一秒结束时,它必须相对于它刚刚移动的方向向左或向右90 度。例如,如果机器人刚刚移动向北或向南,下一步必须向西或向东,反之亦然。

机器人准确地根据上面的规则从它的起始位置开始。机器人最终可以到达多少个不同的点?可以忽略机器人的最终方向。


题解:

n=1:  4    2*2
010
101
010

n=2:  4    2*2
101
000 
101

n=3: 12    (2+4)*2
01010
10101
01010
10101
01010

n=4:  9    3*3
10101
00000
10101
00000
10101

n=5: 24   (2+4+6)*2 从左上到右下依次为 2 4 6 6 4 2
0101010
1010101
0101010
1010101
0101010
1010101
0101010

推出规律:当n是奇数时 1 3 5 为 2*2,6*2,12*2,是2+4+6....*2组成,当n为数就是简单的平方


#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int ans = 0;
	if (n & 1)
	{
		n = (n + 1) / 2;
		ans = (n + 1) * n ;
		ans *= 2;
	}
	else
	{
		n = n / 2 + 1;
		ans = n * n;
	}
	cout << ans << endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值