圆桌会议 HDU - 1214(规律+模拟队列)
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(规律+模拟队列)相关推荐
- 圆桌会议 HDU - 1214
HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU A ...
- 7-22 堆栈模拟队列 (25 分)
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0: in ...
- 数据结构——栈与队列操作(用栈模拟队列)
[栈与队列操作] 问题描述:假设有两个长度相同的栈 S1,S2,已知以下入栈.出栈.判栈满和判栈空操作: void Push(S,x); Elemtype Pop(S); bool StackFull ...
- 033_使用ArrayDeque模拟队列结构
import java.util.ArrayDeque; import java.util.Iterator;/*** 使用ArrayDeque模拟队列结构*/ public class QueueU ...
- uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列
题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...
- 数据结构实验之二叉树五:层序遍历(STL和模拟队列两种方法)
Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. Input 输入数据有多行,第一行是一个整数t (t<1 ...
- (数据结构与算法)数组模拟队列和环形队列
文章目录 数组模拟队列 思路 代码实现 问题分析并优化 数组模拟环形队列 思路 代码实现 数组模拟队列 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取 ...
- 【干货】容器适配器实现两个栈模拟队列
用两个栈模拟队列的思想就是"倒水思想",这里我们用自定义类型模拟出线性表,再用线性表做容器实现栈的数据结构,最后用栈来实现队列,代码如下: #include<iostream ...
- 数组模拟队列(代码实现)
数据结构可分为两种,第一种是线性结构,第二种是非线性结构,线性结构又分为连续存储和链表存储. 常见的线性结构有数组,链表,队列,栈: 以下是数组模拟队列的实现(队列特点就是先进先出): //数组模拟队 ...
最新文章
- Conficker蠕虫新动作 P2P更新5月份关闭
- 统计5分钟内Nginx访问量及平均相应时间
- linux共享磁盘给指定ip,Linux 磁盘挂载和mount共享
- 进击的新版NavMesh系统:看我飞檐走壁
- 5位随机数重复的概率 php_php防止表单重复提交的方法
- 从安全视角来看LXD容器管理程序
- 编程中、遇到问题、bug多思考
- 【闲聊产品】之一:半路出家的产品经理
- 漂亮easyui皮肤组件html模板,EasyUI美化皮肤主题大包Insdep Theme
- 模糊综合评价模型 ——第三部分,一级模糊综合评价模型应用:例题1,对员工进行年终综合评定
- DSP DAC数模转换
- 普通风景照如何调色,ps教程
- 小米电视屏蔽开机广告的方法
- MySQL 生成指定长度的随机字符串
- js直接调用系统打印机进行打印
- rocketmq-常见问题总结(基本概念、高可用、中间件选型)
- UUID的含义及实现原理
- KWP2000协议学习笔记(一)
- Adobe Acrobat更改注释的作者姓名
- jquery-ui如何引入
热门文章
- Android之Eclipse下面如何看Android源代码
- 怎样理解Linux的文件系统
- 【C语言简单说】七:自定义函数(2)
- python冒泡排序代码完整_用Python写冒泡排序代码
- bat从数组中找出相同数字并删除_找到所有数组中消失的数字
- 神奇的折纸艺术!无限翻转完全停不下来
- 计算机高效课堂建设,打造职业学校计算机高效课堂.doc
- 计算机课程建设 指导思想,计算机基础精品课程建设实施方案(规划).doc
- java io流学设置编码_Java学习日志(21-2-IO流-基本数据类型与字节数组对象与、编码解码)...
- php读取excel函数,PHP读取Excel函数Spreadsheet_Excel_Reader