首页 > 其他分享 >CF--832--D

CF--832--D

时间:2022-12-28 22:56:22浏览次数:40  
标签:832 cnt cout -- CF int mp 前缀

关键

这美妙的模拟,我写的和屎一样,写了一个小时,都没出来
1.只需要记录前缀就可以了,不需要适用vector进行二分查找
2.只需要看l或r是否为0就可以了,不需要去二分查找

代码

//只需要判断前缀或者后缀的题目,直接记录就行了,二分查找好麻烦的,模拟了半天也每出来
#include <bits/stdc++.h>
using namespace std;
const int M=2e5+5;

int a[M],s[M];
int pre[M];
int cnt[M];

int main() {
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,m;
    cin>>n>>m;
    map<int,int>mp[2];
    for(int i=1;i<=n;i++) {
        cin>>a[i];
        s[i]=s[i-1]^a[i];
        cnt[i]=cnt[i-1]+(a[i]!=0);
        int x=i%2;
        if(mp[x^1].count(s[i]))pre[i]=mp[x^1][s[i]]+1;//记录前缀,也就是上一个区间
        mp[x][s[i]]=i;//把这个位置进行更新
    }
    for(int i=1;i<=m;i++) {
        int l,r;
        cin>>l>>r;
        if(s[r]^s[l-1])cout<<"-1\n";
        else if(cnt[r]==cnt[l-1])cout<<"0\n";
        else if((r-l+1)%2==1)cout<<"1\n";
        else if(a[l]==0||a[r]==0)cout<<"1\n";//对呀,只需要判断那两个位置就可以了,我真是sb
        else if(pre[r]>=l)cout<<"2\n";
        else cout<<"-1\n";
    }
    return 0;
}

标签:832,cnt,cout,--,CF,int,mp,前缀
From: https://www.cnblogs.com/basicecho/p/17011459.html

相关文章

  • 解决kali /mn/hgfst中无共享文件夹的问题
    1.在虚拟机设置共享目录2.查看共享目录命令root@kali:~#vmware-hgfsclient3.新建文件夹root@kali:~#mkdir/mnt/hgfs/ShareDir/4.创建文件夹root@kali:~#/usr/bin......
  • AcWing245. 你能回答这些问题吗
    题目描述给定长度为\(N\)的数列\(A\),以及\(M\)条指令,每条指令可能是以下两种之一:1xy,查询区间\([x,y]\)中的最大连续子段和2xy,把\(A[x]\)改成\(y\)。对......
  • python读取文本中的字典
    首先得明确文本的每行是存的json或者用python的write(str(一个字典))写入的,那么不用借助json模块就能读取为字典,使用eval函数就行,json只能处理带双引号的字符串,但很多时候......
  • 二分查找
    一、二分查找1.二分查找方法概述二分查找是针对有序数组的一种查找方式。是利用(letf+right)/2=mid的方式来对半缩短搜索范围的一种方法,一次查找,搜索的范围就会减半。相......
  • WebMvcConfigurer 配置swagger的权限
      importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.......
  • Rust的所有权、借用、可变引用 -- 学习随笔
    Rust所有权规则:1.Rust中每一个变量都是自己值的所有者;2.每一个值在任一时刻只有一个所有者;3.所有者(变量)离开所属作用域后,这个值被丢弃;fnmain(){lets1=St......
  • 编程路-基础提升-第七周-02
    高阶函数应用高级函数是对于函数应用更为简洁,更为高效的方法。递归的了解与应用特点函数内部自己调用自己必须要有出口递归可以用于多种情况下,一般需要和if判断......
  • 函数防抖和节流
    防抖和节流防抖和节流主要目的就是防止一个事件频繁触发或频繁使用DOM。比如scroll事件,滚动事件通常频繁触发,上一次回调没有执行完,下一次的事件就触发了,导致出现的页面抖......
  • URP 空间转换函数
    模型空间转世界空间float3TransformObjectToWorld(float3positionOS)世界空间转模型空间float3TransformWorldToObject(float3positionWS)世界空间转观察空间floa......
  • Damao Technical Support
    Wecansharesomeinformationaboutlakefishing,andhowtousetheDamaos.Ifyoustillhaveanyproblem,[email protected],orvisit......