码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1214 圆桌会议

时间:2015-01-01 00:05:52      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

 

每次只能有一组数字进行交换,最后达到逆序效果

 

我们可以这样理解,我们总是希望每次将一个数摆到正确的位置上,那么这样一个数有

顺时针逆时针两个方向移动的机会,我们总是挑移动次数少的一个方向

那么我们排列前前一半数字,就将其逆时针排,这样次数比较少

而后一半就顺时针排

 

自己就能得到两个等差数列了

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     int n;
 6     while(scanf("%d" , &n)!=EOF)
 7     {
 8         int t = n/2;
 9         int ans = t*(t-1)/2;
10         int tt = n-t;
11         ans += tt * (tt-1) / 2;
12         printf("%d\n" , ans);
13     }
14     return 0;
15 }

HDU 1214 圆桌会议

标签:

原文地址:http://www.cnblogs.com/CSU3901130321/p/4196748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!