题意 n个人顺时针围成一圈玩约瑟夫游戏 每个人手上有一个数val[i] 开始第k个人出队 若val[k] 0 时向左数val[k]个 第m出队的人可以得到m的约数个数个糖果 问得到最多糖果的人是谁
约瑟夫环问题 n比较大 直接模拟会超时 通过线段树可以让每次出队在O(logN)时间内完成 类似上一道插队的题 线段树维护对应区间还有多少个人没出队 那么当我们知道出队的人...
分类:
其他好文 时间:
2015-07-13 22:34:13
阅读次数:
237
题意 n个人排队 每个人都有个属性值 依次输入n个pos[i] val[i] 表示第i个人直接插到当前第pos[i]个人后面 他的属性值为val[i] 要求最后依次输出队中各个人的属性值
从头到尾看的话 队列是动态的 无法操作 但是反过来看时 pos[i]就可以表示第i个人前面还有多少个人了 然后想到了用线段树做就简单了 线段树维护对应区间还有多少个空位 每次把i放...
分类:
其他好文 时间:
2015-07-13 14:09:46
阅读次数:
119
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是...
分类:
系统相关 时间:
2015-07-13 06:42:50
阅读次数:
214
1构建哈夫曼树。(利用队列的数据结构,不断获取最小的两个,退出队列并使之成为新节点的左右子树。然后将新节点插入队列。如此循环……)根据用户输入的字符串,统计每个字符出现次数。设置权重。建立队列。队列中的节点是二叉树的节点(有左指针,和右指针)。建新的结点,左右指针指向队列的最后两个(那两个退出队列)...
分类:
编程语言 时间:
2015-07-12 23:07:38
阅读次数:
335
该题算是比较简单的,思路是定义两个栈,一个做为入栈,一个做为出栈。入队列的话直接将元素压入入栈,出队列的话首先判断出栈是否为空,为空则将入栈中的元素依次压入出栈中,再从出栈弹出元素。
class Queue {
public:
// Push element x to the back of queue.
void push(int x) {
instack.pu...
分类:
其他好文 时间:
2015-07-12 11:22:24
阅读次数:
132
题目1117
题目信息
运行结果
本题排行
讨论区
鸡蛋队列
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
将两根筷子平行的放在一起,就构成了一个队列。将带有编号的鸡蛋放到两根筷子之间叫做入队(push),将筷子之间的鸡蛋拿出来叫做出队(pop)。但这两种方式有特殊的定义,对于入队,只能将鸡蛋从队...
分类:
其他好文 时间:
2015-07-08 22:42:27
阅读次数:
320
思想:采用基于层序遍历的方法。用level扫描各层节点,若某一层的节点出队后,rear指向该层中最右节点,则将rear赋值给last(对于第一层,last=1).在出队时,若front=last,表示这一层处理完毕,让层号level增1,并置last为下一层最右节点。那么如何求一层的最右节点呢?这是因为第一层只有一个节点,它就是最右节点。对于其他层,上一层最右节点最后进队的孩子一定是该层的最右节点...
分类:
编程语言 时间:
2015-07-06 10:19:59
阅读次数:
281
题目连接: http://acm.fzu.edu.cn/problem.php?pid=1894解题思路: 因为出队和入队都满足队列的性质,优先单调队列的优先级有进入队列的顺序和人品的高低,在一段区间中如果出现x[i]是最大的,那么[0,i-1]区间内的数就不用记录了,所以单调队列里面可以按照人.....
分类:
其他好文 时间:
2015-06-30 21:53:14
阅读次数:
103
栈:LIFO(后进先出)队列:FIFO(先进先出)栈的顺序存储结构实现:/** * 基于数组实现的顺序栈 * @param */public class Stack { private Object[] data = null; private int maxSize=0; //栈...
分类:
编程语言 时间:
2015-06-29 23:32:49
阅读次数:
273