首页 > 其他分享 >2022.12.30AcWing寒假每日一题2023

2022.12.30AcWing寒假每日一题2023

时间:2022-12-30 23:33:29浏览次数:60  
标签:30AcWing last no int 样例 异或 2023 yes 2022.12

发烧了几天,现在脑子清醒点了,做道题。此题目出自第十三届蓝桥杯C/C++的A/C/研究生组。

AcWing 4645. 选数异或

题目描述

给定一个长度为 \(n\) 的数列 \(A_1,A_2,⋅⋅⋅,A_n\) 和一个非负整数 \(x\),给定 \(m\) 次查询,每次询问能否从某个区间 \([l,r]\) 中选择两个数使得他们的异或等于 \(x\)。

输入格式

输入的第一行包含三个整数 \(n,m,x\)。

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

接下来 \(m\) 行,每行包含两个整数 \(l_i,r_i\) 表示询问区间 \([l_i,r_i]\)。

输出格式

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

数据范围

对于 \(20\%\) 的评测用例,\(1≤n,m≤100\);
对于 \(40\%\) 的评测用例,\(1≤n,m≤1000\);
对于所有评测用例,\(1≤n,m≤100000,0≤x<220\),\(1≤l_i≤r_i≤n\),\(0≤A_i<220\)。

输入样例

4 4 1
1 2 3 4
1 4
1 2
2 3
3 3

输出样例

yes
no
yes
no

样例解释

显然整个数列中只有 \(2,3\) 的异或为 \(1\)。

思路

如果 \(a ⊕ b = x\),则 \(b ⊕ x = a\)。
状态表示:哈希表 \(last\) 存储 \(a_i\) 的位置,\(f[i]\) 表示 \(1-i\) 中与 \(a_i\) 构成异或数对的最大下界,即 \(a_j, 1≤j≤i-1, a_j ⊕ a_i = x\),最大下界即最大的 \(j\)。
状态计算:每次输入 \(a_i\),找到 \(a_i ⊕ x\) 的位置,\(f[i]=max(f[i-1], last[a_i ⊕ x])\)。
在区间判断时,如果 \(f[r]≥l\),也就是存在最大下界在区间内,至少存在一个数对。

C++代码

#include <bits/stdc++.h>
using namespace std;
const int N = 100010;

int n, m, x;
map<int, int> last;
int f[N];

int main()
{
    cin >> n >> m >> x;
    for (int i = 1; i <= n; i ++)
    {
        int a;
        cin >> a;
        last[a] = i;
        f[i] = max(f[i - 1], last[a ^ x]);
    }
    while (m --)
    {
        int l, r;
        cin >> l >> r;
        if (f[r] >= l) puts("yes");
        else puts("no");
    }
    return 0;
}

标签:30AcWing,last,no,int,样例,异或,2023,yes,2022.12
From: https://www.cnblogs.com/Cocoicobird/p/17016064.html

相关文章

  • the nineth——2022.12.30
    C语言中一共有两种定义变量的方法:1.宏定义:再#include下面紧跟#define例如: #include<stdio.h>#defineSUN_FLOWER100;#defineIPHONE_146200; 2.CONSTINT......
  • 2022.12.30
    盘符切换盘符+':'查看当前目录下的所有文件dir切换目录cd(changedirectory)同盘符:cd目录名+':'不同盘符:cd/d盘符名+':'+\目录名返回上一级cd..清理屏......
  • 2022.12 做题记录
    目录CF1758E(图论,连通块)CF1761D(dp,组合数学)CF1761E(图论,构造)CF1748D(位运算,构造)CF1774E(结论,树形dp)CF1774F2(结论,性质,数据结构)CF1762F(性质,结论,dp,线段树)CF......
  • 「Note」闲话 2022.12.30(《浅谈Splay与Treap的性质及其应用》学习笔记)
    屎一样的一年还有两天就过去了呢。感觉都阳了一周了还是没有回复到正常状态,真的挺讨厌的。今天随便找了篇论文假学习了一会儿。由于懒,所以大量内容属摘抄。平衡树的fin......
  • IDC与浪潮信息联合发布:《2022-2023中国人工智能计算力发展评估报告》
    近日,IDC与浪潮信息联合发布《2022-2023中国人工智能计算力发展评估报告》(以下简称《报告》)。报告指出,中国人工智能计算力继续保持快速增长,2022年智能算力规模达到268百亿亿......
  • 华北水利水电大学 2023考研 967数据结构真题
    评价:整体很简单,类似于大学期末考试难度华北水利水电大学2023考研967数据结构真题回忆版1 选择题10道 20分 给一个abaabaa,请问next数组? 循环队列为空的条件是?r......
  • the eighth——2022.12.29
    当printf需要打印双引号时,需要使用转义序列“\”例如:#include<stdio.h> intmain(void){printf("\"HelloWorld!"\"); return0; 输出:“HelloWorld!" ......
  • 【2022.12.28】kaggle上泰坦尼克号的实操(上)
    前言经过一系列的学习,现在想入门kaggle上面的实操,多为模仿参考链接:机器学习入门:Kaggle-titanic(泰坦尼克)生存预测#ThisPython3environmentcomeswithmanyhelpf......
  • the seventh——2022.12.28
    %a.bf的含义%f是输出float(单精度浮点型)型变量,%m.nf中m代表输出数长,n代表小数点后的数长,即保留n位小数。如果小数点后的数大于n,例如12.4567按照%5.2f输出得12.46(四舍五入......
  • Autodesk Maya2023 安装教程(小白看了也说understand)
    前言Maya是Autodesk旗下的著名三维建模和动画软件,应用对象是专业的影视广告,角色动画,电影特技等。Maya功能完善,工作灵活,制作效率极高,渲染真实感极强,是电影级别的高端制作软......