http://acm.hdu.edu.cn/showproblem.php?pid=1214一個環形的圈怎樣用最少次數把它從順時針變成逆時針(只能相鄰位置交換位置)
一個環形,最優結果是把這個環分成 相差 最少的2部分,這2部分按照直線來求出結果再求和
直線如果把1234 換成4321
是冒泡的次數。。首先4123(3)+4312(2)+4321(1)=6
本題是把n看成兩個 n/2 ,然后求出進行反序(冒泡)的次數
#include <stdio.h>
int main()
{
int n,t,r;
while(scanf("%d",&n)!=EOF)
{
t=n/2; r=n-t;
printf("%d\n",t*(t-1)/2+r*(r-1)/2);
}
return 0;
}
posted on 2010-10-07 10:10
孟起 閱讀(738)
評論(0) 編輯 收藏 引用 所屬分類:
水題