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");
        }
    }
}


CodeForces 622C Not Equal on a Segment

Not Equal on a Segment Time Limit:1000MS    Memory Limit:262144KB    64bit IO Format:%I64d & %I64u ...
  • Forever_wjs
  • Forever_wjs
  • 2016年04月06日 23:16
  • 449

CodeForces 622C Not Equal on a Segment

利用一个辅助数组存序号就行了。 #include #include const int MAX = 2e5 + 5; int arr[MAX]; int pre[MAX]; int main...
  • MrSiz
  • MrSiz
  • 2016年03月14日 16:36
  • 345

Not Equal on a Segment CodeForces - 622C

题意: 找出l->r中不等于x的任意位置输出 #include #include #include #include #include using namespace std; cons...
  • qq_33951440
  • qq_33951440
  • 2017年05月18日 19:04
  • 155

【CodeForces】622C - Not Equal on a Segment

http://codeforces.com/problemset/problem/622/C找出[l,r]中不等于x的任意位置输出#include using namespace std;int n...
  • zqf3535
  • zqf3535
  • 2017年08月17日 00:20
  • 50

Codeforces 622C Not Equal on a Segment 【线段树 Or DP】

题目链接:http://codeforces.com/problemset/problem/622/C题意:给定序列,若干查询,每个查询给定区间和tt,输出区间内任意一个不等于tt的元素的位置。分析:...
  • Yukizzz
  • Yukizzz
  • 2016年07月06日 22:49
  • 349

Not Equal on a Segment CodeForces - 622C (思维)

You are given array a with n integers and m queries. The i-th query is given with three integers li,...
  • zhuanshunzhe
  • zhuanshunzhe
  • 2017年05月18日 21:34
  • 66

CodeForces 622C Not Equal on a Segment(并查集)

题意:有n个数,然后m个询问,每次询问给你l,r,x,让你找到一个位置k,使得a[k]!=x,且l...
  • qq_21057881
  • qq_21057881
  • 2016年04月14日 22:58
  • 462

CodeForces - 622C Not Equal on a Segment 思维

题目链接 题意:给你n个数,m次查询,每次查询给你l,r,x让你在区间中找到任何一个不为x的数即可,找到输出,否则输出-1       思路:只需要开一个pre数组,记录第i个数前面第一个和他...
  • HowardEmily
  • HowardEmily
  • 2017年05月18日 21:51
  • 148

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

题目链接: http://codeforces.com/contest/622/problem/C 题目大意: 给一个长为n 的序列,m个询问。每次询问一个区间[l,r]和数x。问这个区间里...
  • aaaaacmer
  • aaaaacmer
  • 2016年02月16日 20:25
  • 488

CodeForces 622C F - Not Equal on a Segment

p[i]记录i这个位置上跳到第几位比较,如果a[i]=a[i+1],那么p[i+1]=p[i] 从后往前扫,遇到第一个不等的输出,推出,否则跳到p[i]处比较 #include #define max...
  • Rutifrl
  • Rutifrl
  • 2016年07月08日 20:49
  • 119
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Codeforces 622C Not Equal on a Segment
举报原因:
原因补充:

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