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
孟起 阅读(721)
评论(0) 编辑 收藏 引用 所属分类:
水题