/***** 1->N个人坐成一个环,顺时针序号递增。 现要这些人坐成逆时针递增的环。相邻交换,最少需要交换多少次。 思考:设共6个人,要逆时针递增坐,则可以转化成两个子问题: 1到3人变逆序,4到6人变逆序……然后就把有环的问题转化成的直线数组问题。 这题最重要的思想是去环!******/
#include<bits/stdc++.h>
using namespace std;
int f[
40000];
int main()
{
f[0]=
0;f[
1]=
0;f[
2]=
1;f[
3]=
3;
for(
int i=
4;i<
40000;i++) f[i]=f[i-
1]+i-
1;
int Y;cin>>
Y;
while(Y--
)
{
int n;cin>>
n;
cout<<f[n/
2]+f[n-n/
2]<<
endl;
}
}
太SB了,客户端居然没有代码编辑的功能。
转载于:https://www.cnblogs.com/Airplus/p/3868921.html
相关资源:JAVA上百实例源码以及开源项目