题目
解决思路:
特别区分:
可以向对角移动:离目标点的 “圈数” 即要走的步数
不可像对角移动:离目标点的min{横坐标差,纵坐标}即要走的步数
提醒:
在分析出每部分的步数后,要把他汇总到整个矩阵中,看其分布情况有无特点
——可局部找答案,但也要总体看
如此题:
22222
21112
21012
21112
22222
代码
#include<iostream>
using namespace std;
int main()
{
//freopen("C:\\Users\\bearb\\Desktop\\in.txt", "r", stdin);
long long t, n;
cin >> t;
while(t--)
{
cin>>n;
n = n/2;
long long sum = 0;
for(long long i = 1; i <= n; i++)
{
sum += 8*i*i;//每一圈有(2*i+1)^2-(2*(i-1)+1)个数
}
cout << sum<<endl;
}
return 0;
}