FZOJ 1157 Crazy Tea Party

来源:互联网 发布:阿里云改ssh端口 编辑:程序博客网 时间:2024/06/10 19:45

OJ题目:click here~~

题目分析:1……n按顺序围成一个圈,1与n相邻。交换相邻两个数算1步。至少需要多少步,得到一个逆方向的1……n的圈。

分两半,使用冒泡排序,排成逆序的交换次数之和即为结果。

AC_CODE

int f(int n){    return n*(n - 1)/2;}int main(){    int n  , t;    cin >> t;    while(t--){        cin >> n;        int ans = 0;        if(n&1) ans = f(n/2) + f(n/2 + 1);        else ans = 2*f(n/2);        cout << ans << endl;    }}


1 0
原创粉丝点击