E 宝藏男孩
简单dp,也就是说,还是找规律。
long long必不可少。
最后存放宝藏的位置一定是最中间的位置。
画个图就知道规律了。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[500010];
void f(){
    dp[1]=0;
    for(ll i=3;i<500010;i+=2)
        dp[i]=dp[i-2]+4*(i-1)*(i/2);//其中4*(n-1)为最外围的格子数。n/2为最外围格子到达最中间格子需要的步数。
}
int main(){
    int t;
    cin>>t;
    f();
    while(t--){
        int n;
        cin>>n;
        cout<<dp[n]<<endl;
    }
    return 0;
}