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;
}
京公网安备 11010502036488号