解题思路:
如果是所有人排列成一条直线,那么移动的思想与冒泡排序一样,总共需要n*(n-1)/2种方法,
求环形的逆序变换最小时间,因为环形是相互连接的,那么只要将n划分为最接近的两个直线,
当这两个划分的直线逆序了。那么整条环形便也逆序了。
冒泡法,但是要分成一半来冒泡 ,冒泡法,但是要分成一半来冒泡。
代码:
#include<iostream>
using
namespace std;
int main()
{
int
m,n,s;
while(cin>>n)
{
m=n/2;
n=n-m;
s=n*(n-1)/2+m*(m-1)/2;
cout<<s<<endl;
}
return
0;
}