随笔-19  评论-1  文章-0  trackbacks-0
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)  编辑 收藏 引用 所属分类: 水题

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理