摘要:
Hoax or what题意是询问一个动态序列的最小值和最大值。可以用multiset来实现。#include #include using namespace std;int main() { freopen("h.in", "r", stdin); freopen("h.ans", "w", stdout); int n; while (scanf("%d", &n) && n) { multiset bills; int sum = 0; for (int i = 阅读全文
posted @ 2013-08-26 17:21
litstrong
阅读(293)
评论(0)
推荐(0)
摘要:
Frequent values题意是不同颜色区间首尾相接,询问一个区间内同色区间的最长长度。网上流行的做法,包括翻出来之前POJ的代码也是RMQ做法,对于序列上的每个数,记录该数向左和向右延续的最远位置,那么对于一个查询Q(L, R),它的答案就分成了三种情况right(L) - L,R - left(R)以及Q(L+right(L),R-left(R))。这里给出一个线段树做法,在线段树的节点上维护3个量:l_value, r_value, value分别表示以左端点为起始点,以右端点为起始点以及该区间内的最大的连续长度,更新时通过两个子区间相接的地方是否相同分不同的情况进行讨论。#incl 阅读全文
posted @ 2013-08-26 11:16
litstrong
阅读(363)
评论(0)
推荐(0)