问题及代码:

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:team.cpp
*作    者:单昕昕
*完成日期:2015年2月3日
*版 本 号:v1.0
*
*问题描述:ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们在每一分钟内,一对相邻的两个ACM队员交换一下位子,那么要多少时间才能得到与原始状态相反的座位顺序呢?(即对于每个队员,原先在他左面的队员后来在他右面,原先在他右面的队员在他左面),这当然难不倒其他的聪明的其他队友们,马上就把这个古怪的问题给解决了,你知道是怎么解决的吗?
*程序输入:对于给定数目N(1<=N<=32767),表示有N个人,求要多少时间才能得到与原始状态相反的座位顺序(reverse)即对于每个人,原先在他左面的人后来在他右面,原先在他右面的人在他左面。
*程序输出:对每个数据输出一行,表示需要的时间(以分钟为单位)
Sample Input
4
5
6
Sample Output
2
4
6
*/
#include<iostream>
using namespace std;
int main()
{int n,a,b;while(cin>>n){a=n/2;b=n-a;cout<<a*(a-1)/2+b*(b-1)/2<<endl;}return 0;
}

运行结果:

知识点总结:

这题就是在求一串数在每次只能对调相邻两位时,要得到其逆序最少要移动多少次。

在直线上移动很简单,类似于冒泡排序的方法,一个数不断向上冒,直到最终位置。不难得到其需要移动的次数公式为n*(n-1)/2。其中n为总点数。

那么在圆环上移动又会如何呢?应该会不一样这是我们直观的感受。事实也是如此,移动的过程是将圆环分为两段,分别移动。那么又在何处分段呢?

答案是尽量使两段长度相等。

为啥?证明如下:

设n为总长度,分为两段,长度分别为a、b。总次数=a*(a-1)/2+b*(b-1)/2=a*(a-1)/2+(n-a)*(n-a-1)/2=(2*a^2-2*n*a+n^2)/2。

其中n为常量,a为变量。二次曲线开口向上,最小值对应的a=-(-2*n)/(2*2)=n/2。显然a要求整数。

学习心得:

这一题很显然不是我自己写出来的。。。感谢度娘和这位大神。。

找出来规律就好写很多啊啊啊有木有~!!

HDU-圆桌会议问题相关推荐

  1. 圆桌会议 HDU - 1214(规律+模拟队列)

    Time limit     1000 ms Memory limit     32768 kB OS    Windows Source     杭电ACM省赛集训队选拔赛之热身赛 HDU ACM集 ...

  2. 杭电 HDU ACM 圆桌会议

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. 圆桌会议 HDU - 1214

    HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU A ...

  4. HDOJ 1214 圆桌会议

    Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一 ...

  5. HDU1214 圆桌会议(找规律,数学)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1214 圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    M ...

  6. 杭电1214 圆桌会议

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  7. HDU1214 圆桌会议【数学】

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

  8. 杭电acm 1214 圆桌会议(冒泡排序)

    圆桌会议                                                                 Time Limit: 2000/1000 MS (Java/ ...

  9. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  10. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

最新文章

  1. 在线等!同事扔需求,不会写代码躲在厕所怎么办 | 每日趣闻
  2. MLP is Best?
  3. 未来两年内的九大信息安全威胁(三)
  4. linux 信号_Linux信号量(1)-SYSTEM V
  5. 前后台交互经常使用的技术汇总(后台:Java技术,前台:Js或者Jquery)
  6. iOS支付指南:POS终端刷卡流程(发卡行返回码)、结算周期、付款码二维码编码规则、脱敏规范、银行卡号有效性校验、扫码验证密码规则、测试辅助工具、【签购单未打印,但持卡人收到扣款信息,商户的处理方案】
  7. sentinel卫星_常用的遥感卫星数据(一)哨兵
  8. C# 小票打印机 直接打印 无需驱动
  9. 最速下降法python_python实现最速下降法
  10. 《深入浅出WPF》——命令学习
  11. 微信小程序的一些开发限制
  12. java合并docx_java实现多个docx文档合并(基于docx4j)
  13. 绕过校园网认证实现免费上网【三端】
  14. Python在已知参数方程情况下绘制三维曲线
  15. 练习java文档ZoneId
  16. python刷步数程序设计_利用python+云函数搭建自己的修改步数api接口
  17. 金地农村土地承包经营权证打证系统
  18. CSS学习笔记-11-Flex布局
  19. harmonyOS系统是安卓,HarmonyOS华为操作系统
  20. 宝马将自动驾驶和打车服务结合,最快明年在德国上路

热门文章

  1. Socket的超时时间
  2. Django企业开发实战--by胡阳,学习记录1015
  3. 【案例1】图书馆管理系统毕业论文
  4. 带有当前位置坐标的地图
  5. OPPO K9和OPPO K7参数对比 选哪个
  6. 宁愿吃生活的苦,也不愿坚持学习
  7. 这2个在线资源网千万别错过,老司机人手一份,一年省下好几千
  8. 【转贴】百度贴吧成就一段姻缘!一句被五重密码保护的表白破译全记录
  9. Ajax介绍和基本使用
  10. MediaPlayer源码分析