设为首页 加入收藏

TOP

zoj 1730 / poj 1455 Crazy Tea Party
2014-11-23 21:46:36 来源: 作者: 【 】 浏览:9
Tags:zoj 1730 poj 1455 Crazy Tea Party
这阵子都没怎么写代码,由于开学,忙于各种琐碎的事情,现在静下来了开始跟着暑假的节奏刷题了。
这道题一开是没看清题目~在寝室刷题就是效率不高。。。
后来才知道,题目意思是,一个环形序列,1minute可以交换相邻的两个位置,问逆序所需的最小时间是多少。
如果不是环形的话那就好办了,就是个冒泡。
非环形时:
如 n = 5 : 1 2 3 4 5
所需时间为:n*(n-1)/2 = 10
环形时:
如 n = 5 :1 2 3 4 5
可将 n拆分成2 + 3
1 2 和 3 4 5
可用4部将其逆序
1:2 1 和 3 4 5
2:2 1 和 4 3 5
3:2 1 和 4 5 3
4:2 1 和 5 4 3
由于其为环形,故至此完成逆序操作
所以这题就变得十分简单了,time = n/2*(n/2 - 1)/2 + (n+1)/2* ((n+1)/2 - 1)/2
#include  
using namespace std;  
int main(void)  
{  
    int n,ncases;  
    cin>>ncases;  
    while(ncases--)  
    {  
    cin>>n;  
    cout<<(n/2*(n/2-1)/2+(n+1)/2*((n+1)/2-1)/2)< 
  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇覆盖,重写,重载,隐藏,多态的.. 下一篇HDU 3468 BFS+二分匹配

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·一篇说人话的文章, (2025-12-27 07:50:09)
·Python Web框架哪家 (2025-12-27 07:50:06)
·基于Python的数据分 (2025-12-27 07:50:03)
·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)