Advertisement

UVa 1608 非无聊序列

阅读量:

题意:
当且仅当在给定序列的任意一段连续子序列中,都存在至少一个仅出现一次的元素时,该序列被定义为不无聊的。现给出一个由n个元素构成的序列A,要求判断该序列是否属于无聊类型。

代码:

复制代码
    #include<bits/stdc++.h>
    #define LL long long
    #define ms(s) memset(s, 0, sizeof(s))
    using namespace std;
    const LL maxn = 2e5 + 10;
    LL a[maxn];
    LL _left[maxn];
    LL _right[maxn];
    LL n;
    
    // [l, r]
    bool solve(LL l, LL r) {
    	if (l >= r) return true;
    	LL ll = l, rr = r;
    	LL mid = ll + (rr - ll) / 2;
    	while (ll <= mid) {
    		if ((_left[ll] == -1 || _left[ll] < l ) && (_right[ll] == -1 || _right[ll] > r)) {
    			if (solve(l, ll - 1) && so

全部评论 (0)

还没有任何评论哟~