Codeforces 622C Not Equal on a Segment

原创 2016年06月02日 12:18:19

题目链接:http://codeforces.com/problemset/problem/622/C


题意:给出一个大小为n的序列,给出一个区间[l,r]和c要求找出一个该区间内和c不一样的数,没有则输出-1


思路:将序列中相邻的数合并,因为是找不同的数,所以时间一下就得到了优化……


#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

int s[200030],sc[200030];

int main()
{
    int n,m;
    while (scanf("%d%d",&n,&m)!=EOF)
    {
        for (int i=1;i<=n;i++)
            scanf("%d",&s[i]);

        sc[n]=n;
        for (int i=n-1;i>0;i--)
        {
            if (s[i]==s[i+1])
                sc[i]=sc[i+1];
            else
                sc[i]=i;
        }

        for (int i=0;i<m;i++)
        {
            int l,r,x,flag=1;
            scanf("%d%d%d",&l,&r,&x);
            for (int j=l;j<=r;j++)
            {
                int y=sc[j];
                if (s[y]==x)
                {
                    j=y;
                }
                else
                {
                    flag=0;
                    printf("%d\n",j);
                    break;
                }
            }
            if (flag) printf("-1\n");
        }
    }
}


相关文章推荐

codeforces622C Not Equal on a Segment

原题链接:http://codeforces.com/problemset/problem/622/C C. Not Equal on a Segment...

Educational Codeforces Round 7 CF622C Not Equal on a Segment

Not Equal on a Segment time limit per test1 second memory limit per test256 megabytes inputstanda...

Codeforces 622 C. Not Equal on a Segment

传送门: http://codeforces.com/problemset/problem/622/C题意:输出给定区间不等于e的位置 比赛的时候用愚蠢的方法一直wrong,然后听到q神说用双指针...
  • yp_2013
  • yp_2013
  • 2016年02月11日 10:42
  • 565

Codeforces 622C Not Equal on a Segment【思维预处理+二分】

C. Not Equal on a Segment time limit per test 1 second memory limit per test 256 megabytes ...

Codeforces 622C Not Equal on a Segment(线段树)

题目链接: http://codeforces.com/contest/622/problem/C 题目大意: 给一个长为n 的序列,m个询问。每次询问一个区间[l,r]和数x。问这个区间里...

Educational Codeforces Round 7--C. Not Equal on a Segment

C. Not Equal on a Segment time limit per test 1 second memory limit per test 256 megabytes inp...

Educational Codeforces Round 7 C. Not Equal on a Segment(思维)

题意: 给定N,Q≤2×105,N为序列长度,Q次询问给定N, Q\le 2\times10^5,N为序列长度, Q次询问 li,ri,xi,查找[li,ri]中≠xi的任意一个下标,无解输...
  • lwt36
  • lwt36
  • 2016年02月11日 15:05
  • 304

Codeforces 242E. XOR on Segment【线段树】

题目大意: 给出一个序列,有两种操作,一种是计算l到r的和,另一种是让l到r的数全部和x做异或运算。 做法: 很显然直接暴力是不可能的(但是这题刚刚出来的时候,很多人用暴力水过去了,后来加强的数据吧)...

CodeForces 242E XOR on Segment 二维线段树

题目链接:http://codeforces.com/problemset/problem/242/E题意: 给定一个长度为n的数组,然后有两种操作。 1:查询操作,求区间[l,r]的值的和; ...

codeforces 242E - XOR on Segment

这种形式的题还是不熟悉。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Codeforces 622C Not Equal on a Segment
举报原因:
原因补充:

(最多只允许输入30个字)