摘要: 题意:50000个点的树,每个点有一个人,每个人会跑到离自己初始点距离最远的点上,这个距离为distance[i]。给你500个查询,对于每个查询Q,找一段连续编号的人,比如[left,right],满足 max( distance[i] i∈[left,right] ) – min( distance[i] i∈[left,right] ) ≤ Q,并且使得length=right-left+1要最大,求这个最大的length法一:关键是O(1)的RMQ。。。。分析:求distance[i]数组(代码中的d),可以用搜边的方法来解决,然后线性维护一个队列,使得队列中的最大值 – 最小值≤ Q 阅读全文
posted @ 2013-10-23 19:16 baoff 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 题意是建一个二叉树,按值最小的次序遍历,每当遍历到的节点编号为奇数的得到一个字符1,否则得0。然后在比较给出的字符串在得到的字符串中出现的次数。但是由于这里的数据达到60W,所以不能直接模拟建树,会栈溢出。只能自己模拟栈。#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson omp; map::iterator it; map::iterator... 阅读全文
posted @ 2013-10-23 16:36 baoff 阅读(167) 评论(0) 推荐(0) 编辑