首页 > 其他分享 >4645. 选数异或

4645. 选数异或

时间:2023-01-08 16:46:57浏览次数:46  
标签:int 选数 整数 4645 用例 异或

4645. 选数异或

给定一个长度为 n
的数列 A1,A2,⋅⋅⋅,An
和一个非负整数 x
,给定 m
次查询,每次询问能否从某个区间 [l,r]
中选择两个下标不同的数使得他们的异或等于 x
。

输入格式
输入的第一行包含三个整数 n,m,x
。

第二行包含 n
个整数 A1,A2,⋅⋅⋅,An
。

接下来 m
行,每行包含两个整数 li,ri
表示询问区间 [li,ri]
。

输出格式
对于每个询问,如果该区间内存在两个数的异或为 x
则输出 yes,否则输出 no。

数据范围
对于 20%
的评测用例,1≤n,m≤100
;
对于 40%
的评测用例,1≤n,m≤1000
;
对于所有评测用例,1≤n,m≤100000
,0≤x<220
,1≤li≤ri≤n
,0≤Ai<220
。

输入样例:
4 4 1
1 2 3 4
1 4
1 2
2 3
3 3
输出样例:
yes
no
yes
no
样例解释
显然整个数列中只有 2,3
的异或为 1
。

动态规划

#include<bits/stdc++.h>
using namespace std;

typedef long long int ll;
const int N=100010;

int dp[N];
map<int,int>last;

int main()
{
    int n,m,x;
    scanf("%d%d%d",&n,&m,&x);
    for(int i=1;i<=n;i++){
        int a;
        scanf("%d",&a);
        dp[i]=max(dp[i-1],last[a^x]);
        last[a]=i;
    }
    for(int i=1;i<=m;i++){
        int l,r;
        scanf("%d%d",&l,&r);
        if(dp[r]>=l)    cout<<"yes"<<endl;
        else    cout<<"no"<<endl;
    }
    return 0;
}

标签:int,选数,整数,4645,用例,异或
From: https://www.cnblogs.com/SkyDusty/p/17034840.html

相关文章

  • 统计异或值在范围内的数对有多少(01字典树)
    1803.统计异或值在范围内的数对有多少-力扣(Leetcode)题意:   思路:很经典的方法,01字典树,同时在树上多维护一个数据,有多少个节点经过当前节点,记为cnt我们可以......
  • P4551 最长异或路径 : 01tire + 树 + 异或
    题P4551最长异或路径https://www.luogu.com.cn/problem/P4551知识背景01tire树,可以用来查找异或的最大值。经典问题如下。在nums中,哪两个数中异或值最大。解决方法:......
  • 关于异或-异或运算及其应用
    概念异或,是一个数学运算符,英文为exclusiveOR,缩写为xor,应用于逻辑运算异或的数学符号为“⊕”,计算机符号为“xor”  如果a、b两个值不相同,则异或结果为1......
  • P1036 [NOIP2002 普及组] 选数(DFS + 不降原则)
    P1036[NOIP2002普及组]选数题意​ 在n个数里选k个数,有多少中选法,使得选出来的数的和为素数。不能重复选。思路​ n很小,直接爆搜,但是如果不使用不降原则的话,就......
  • 子数组的最大异或和问题
    子数组的最大异或和问题作者:Grey原文地址:博客园:子数组的最大异或和问题CSDN:子数组的最大异或和问题题目描述数组中所有数都异或起来的结果,叫做异或和。给定一个数组......
  • 关于异或和一些运算符
    上课的时候经常摸鱼,连异或都没搞懂,今天看map源码的时候才注意到有一个看不懂的计算符staticfinalinthash(Objectkey){inth;return(key==nul......
  • 异或运算及其应用-查找奇数个数的数字
     异或运算功能很强大。用的得当可以提高算法效率。先说一下异或运算的运算法则:      1. a^b=b^a2.a^b^c=a^(b^c)=(a^b)^c  3.......
  • C#实现简单的异或加密,方便处理
    将本地的mp4和ts文件加密为“dj”文件,无法播放。解密则是将“dj”文件解密为mp4或ts文件。usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSy......
  • 数组里暴力查找单身狗和'^'异或快速查找单身狗
    intmain(){ chararr[]={1,2,3,4,5,7,5,1,2,3,4}; intsz=sizeof(arr)/sizeof(arr[0]); inti,ret=0; //0^a=a,a^b^a=b,a^a=0,异或满足交换规律,相同为0,反之为1; ......
  • BZOJ4536 : 最大异或和II
    建立$n+m$个点的无向图,其中$n$个点表示输入的数列,$m$个点表示答案的$m$个二进制位。对于输入的两个数$a[i],a[j]$,若它们存在公共二进制位,则可以通过同时选某一公共位来对......