题目链接
题意:
给你一个n*n的方阵,n肯定为奇数。每个方阵上有一个图形,问:最少需要多少步,把所有的图形集中在一个图形上。
//可以斜着走
思路:
肯定是移到方阵中间需要最少的步数。我们可以观察到中间与周围8个组成的3 * 3的方阵中,外围的8个图形每一个需要移动一步,然后我们扩大到5 * 5的方阵,外围的16个图形每一个需要移动俩步,依次类推
#include <bits/stdc++.h>
using namespace std;
#define NewNode (TreeNode *)malloc(sizeof(TreeNode))
#define Mem(a,b) memset(a,b,sizeof(a))
const int N = 1e5 + 5;
const int INF = 0x3f3f3f3f;
const double EPS = 1e-10;
const unsigned long long mod = 998244353;
const double II = 3.1415926535;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef pair<ll,ll> piil;
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
ll ans[N+5] = {0},t;
for(int i = 1;i <= N;i++)
ans[i] += (ans[i-1]+8);
cin >> t;
while(t--)
{
ll n,sum = 0;
cin >> n;
for(int i = 1;i <= n/2;i++)
sum += (i*ans[i]);
cout << sum << endl;
}
}