zoukankan      html  css  js  c++  java
  • CodeForces 622C Not Equal on a Segment

    预处理p[i],p[i]表示:【p[i],i】这段闭区间上所有数字都是a[i]

    询问的时候,如果xi==a[ri]并且p[ri]<=li,一定无解

    剩下的情况都是有解的,如果xi!=a[ri],那么输出ri,否则输出p[ri]-1。

    另外,看到有大牛博客说可以用线段树,大致是这样的:

    线段树保存区间最大值与最小值,

    如果询问的区间上最小值==最大值,那么无解;

    剩下的情况都是有解;如果xi不等于最小值,那么输出最小值位置;如果xi不等于最大值,那么输出最大值位置。

    #include <stdio.h>
    #include <algorithm>
    #include <string.h>
    #include <queue>
    #include <stack>
    #include <map>
    #include <vector>
    using namespace std;
    
    const int maxn=200000+10;
    int a[maxn],p[maxn];
    int n,m;
    
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        p[1]=1;
        for(int i=2;i<=n;i++)
        {
            if(a[i]==a[i-1]) p[i]=p[i-1];
            else p[i]=i;
        }
    
        //p[i]表示,【p[i],i】这段闭区间上所有数字都是a[i]
    
        for(int i=1;i<=m;i++)
        {
            int li,ri,xi;
            scanf("%d%d%d",&li,&ri,&xi);
            if(xi==a[ri]&&p[ri]<=li) printf("-1
    ");
            else
            {
                if(xi!=a[ri]) printf("%d
    ",ri);
                else printf("%d
    ",p[ri]-1);
            }
        }
    
        return 0;
    }
  • 相关阅读:
    linux jdk 安装
    hibernate下Session的获取方式
    java http的get,post请求
    DetachedCriteria的简单使用
    传入泛型类型(T.class)的方法
    spring4、hibernate4整合xml配置
    (转)谈依赖注入
    集合类概述
    Swing编程概述
    java构造方法之我见
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5189928.html
Copyright © 2011-2022 走看看