Time limit     1000 ms

Memory limit     32768 kB

OS    Windows

Source     杭电ACM省赛集训队选拔赛之热身赛

HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们在每一分钟内,一对相邻的两个ACM队员交换一下位子,那么要多少时间才能得到与原始状态相反的座位顺序呢?(即对于每个队员,原先在他左面的队员后来在他右面,原先在他右面的队员在他左面),这当然难不倒其他的聪明的其他队友们,马上就把这个古怪的问题给解决了,你知道是怎么解决的吗?

Input

对于给定数目N(1<=N<=32767),表示有N个人,求要多少时间才能得到与原始状态相反的座位顺序(reverse)即对于每个人,原先在他左面的人后来在他右面,原先在他右面的人在他左面。

Output

对每个数据输出一行,表示需要的时间(以分钟为单位)

Sample Input

4
5
6

Sample Output

2
4
6

规律题

/*题中说的与初始状态相反,即对于每一个人,原来在它左边的人
现在在他的右边,原来在他右边的人,现在在他的左边,因为坐姿
是一个圆,我们先来想如果是一条直线的话,我们是不是应该固定好
最后一个点的位置,将倒数第二个点移动到最后一个点的右边,再将
倒数第三个点移动到倒数第二数移动到最后边,然后以此类推,如果
这是一个递增序列,那么现在移动完之后就成了一个递减序列,|7        |           28  |   18      7    |       2      1________________|_________________|5     6      |       3      45   |    46           |            3||||5        |           48  |   16      7    |       2      3________________|_________________|7     6      |       3     25   |    48           |            1||||||*/
#include <iostream>
#include<stdio.h>
#include<math.h>
using namespace std;int main()
{int t,n,m;int sum;while(~scanf("%d",&t)){n=t/2;m=t-n;sum=n*(n-1)/2+m*(m-1)/2;printf("%d\n",sum);}return 0;
}
/*普通队列的逆序相信大家都熟悉,恰好正是冒泡排序的最糟情况,最少交换次数为n(n-1)/2。
环的逆序呢?分成两个普通的队列来逆序最快。
1、n=2k+1,分成长度分别为k+1和k的两个队列;
2、n=2k,分成两个长度为k的队列
这题并没有很吓人的数据量或者数据,所以我索性直接模拟,并没有用求和公式。|5        |           48  |   16      7    |       2      3________________|_________________|7     6      |       3     25   |    48           |            1|*/

圆桌会议 HDU - 1214(规律+模拟队列)相关推荐

  1. 圆桌会议 HDU - 1214

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

  2. 7-22 堆栈模拟队列 (25 分)

    设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0: in ...

  3. 数据结构——栈与队列操作(用栈模拟队列)

    [栈与队列操作] 问题描述:假设有两个长度相同的栈 S1,S2,已知以下入栈.出栈.判栈满和判栈空操作: void Push(S,x); Elemtype Pop(S); bool StackFull ...

  4. 033_使用ArrayDeque模拟队列结构

    import java.util.ArrayDeque; import java.util.Iterator;/*** 使用ArrayDeque模拟队列结构*/ public class QueueU ...

  5. uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列

    题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...

  6. 数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)

    Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. Input 输入数据有多行,第一行是一个整数t (t<1 ...

  7. (数据结构与算法)数组模拟队列和环形队列

    文章目录 数组模拟队列 思路 代码实现 问题分析并优化 数组模拟环形队列 思路 代码实现 数组模拟队列 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取 ...

  8. 【干货】容器适配器实现两个栈模拟队列

    用两个栈模拟队列的思想就是"倒水思想",这里我们用自定义类型模拟出线性表,再用线性表做容器实现栈的数据结构,最后用栈来实现队列,代码如下: #include<iostream ...

  9. 数组模拟队列(代码实现)

    数据结构可分为两种,第一种是线性结构,第二种是非线性结构,线性结构又分为连续存储和链表存储. 常见的线性结构有数组,链表,队列,栈: 以下是数组模拟队列的实现(队列特点就是先进先出): //数组模拟队 ...

最新文章

  1. Conficker蠕虫新动作 P2P更新5月份关闭
  2. 统计5分钟内Nginx访问量及平均相应时间
  3. linux共享磁盘给指定ip,Linux 磁盘挂载和mount共享
  4. 进击的新版NavMesh系统:看我飞檐走壁
  5. 5位随机数重复的概率 php_php防止表单重复提交的方法
  6. 从安全视角来看LXD容器管理程序
  7. 编程中、遇到问题、bug多思考
  8. 【闲聊产品】之一:半路出家的产品经理
  9. 漂亮easyui皮肤组件html模板,EasyUI美化皮肤主题大包Insdep Theme
  10. 模糊综合评价模型 ——第三部分,一级模糊综合评价模型应用:例题1,对员工进行年终综合评定
  11. DSP DAC数模转换
  12. 普通风景照如何调色,ps教程
  13. 小米电视屏蔽开机广告的方法
  14. MySQL 生成指定长度的随机字符串
  15. js直接调用系统打印机进行打印
  16. rocketmq-常见问题总结(基本概念、高可用、中间件选型)
  17. UUID的含义及实现原理
  18. KWP2000协议学习笔记(一)
  19. Adobe Acrobat更改注释的作者姓名
  20. jquery-ui如何引入

热门文章

  1. Android之Eclipse下面如何看Android源代码
  2. 怎样理解Linux的文件系统
  3. 【C语言简单说】七:自定义函数(2)
  4. python冒泡排序代码完整_用Python写冒泡排序代码
  5. bat从数组中找出相同数字并删除_找到所有数组中消失的数字
  6. 神奇的折纸艺术!无限翻转完全停不下来
  7. 计算机高效课堂建设,打造职业学校计算机高效课堂.doc
  8. 计算机课程建设 指导思想,计算机基础精品课程建设实施方案(规划).doc
  9. java io流学设置编码_Java学习日志(21-2-IO流-基本数据类型与字节数组对象与、编码解码)...
  10. php读取excel函数,PHP读取Excel函数Spreadsheet_Excel_Reader