就是计算一个类似靶子的图形的每一个格子走到最中央所要的总步数的最小值,就可以先算十字上的再算对角线上的最后算剩下的就行了,重点是找规律吧。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, sum, a, c, d;
int main()
{
int t;
cin >> t;
while(t--){
sum=0,c=0,d=0;
scanf("%lld",&n);
a = (n - 1)/2;
sum+=(1 + a)*a/2*4;
sum+=(1 + a)*a/2*4;
for(ll i = a; i >= 2; i--)
{
c += i;
d += c;
//cout << c << " " << d << endl;
}
sum += d*8;
cout << sum << endl;
}
return 0;
}