首页 > 其他分享 >Luogu P8773 [蓝桥杯 2022 省 A] 选数异或

Luogu P8773 [蓝桥杯 2022 省 A] 选数异或

时间:2023-01-27 14:33:33浏览次数:70  
标签:xor int Luogu texttt 蓝桥 异或 P8773

https://www.luogu.com.cn/problem/P8773


因为 \(a\texttt{ xor } b=c\) 则 \(a\texttt{ xor } c=b\),对于 \(a_i\) 找到 \(a_i\texttt{ xor } x\) 离其最近的位置,放在 ST 表里查询区间最大值即可


# include <bits/stdc++.h>
using namespace std;
const int N = 100000, M = 18;
int Max [M] [N + 10];
int l2 [N + 10];
const int X = 1 << 20;
int lst [X + 10];
int main () {
	ios :: sync_with_stdio (false);
	cin .tie (0);
	cout .tie (0);
	int n, m, x;
	cin >> n >> m >> x;
	for (int i = 3; i <= n; ++ i) {
		l2 [i] = l2 [i + 1 >> 1] + 1;
	}
	for (int i = 1; i <= n; ++ i) {
		int a;
		cin >> a;
		Max [0] [i] = lst [a ^ x];
		lst [a] = i;
	}
	for (int i = 1; (1 << i) <= n; ++ i) {
		for (int s = 1, t = 1 << i; t <= n; ++ s, ++ t) {
			Max [i] [t] = max (Max [i - 1] [s + (1 << (i - 1)) - 1], Max [i - 1] [t]);
		}
	}
	while (m --) {
		int l, r;
		cin >> l >> r;
		int g = l2 [r - l + 1];
		cout << (max (Max [g] [l + (1 << (g)) - 1], Max [g] [r]) >= l ? "yes" : "no") << '\n';
	}
	return 0;
}

标签:xor,int,Luogu,texttt,蓝桥,异或,P8773
From: https://www.cnblogs.com/lctj-bot/p/17068887.html

相关文章

  • Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析
    https://www.luogu.com.cn/problem/P7191发现一个性质:最多只会合并\(n-1\)次(类似树只有\(n-1\)条边)。于是在合并的时候暴力统计即可。时间复杂度\(O(n^2+m)\)。......
  • 蓝桥杯 枚举2 27题 直线
    题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两......
  • 【FPGA】Verilog 编码实现:与非门 | 或非门 | 异或门 | NAND/NOR/XOR 行为验证
    写在前面:本章主要内容为了解和确认NAND/NOR/XOR门的行为,并使用Verilog实现,生成输入信号后通过模拟,验证每个门的操作,并使用FPGA来验证Verilog实现的电路的行为。本章目......
  • 关于AC自动机的一些理解 || Luogu3121 & 4824 Censoring - 哈希 - AC自动机
    题目链接:https://www.luogu.com.cn/problem/P3121(4824)题解:4824是CensoringS,只需要对单模式串进行操作,3121需要对多模式串4824开一个前缀hash数组,每次扫到当前点......
  • 选数异或
    问题描述给定一个长度为 �n 的数列 �1,�2,⋯,��A1​,A2​,⋯,An​ 和一个非负整数 �x,给定 �m 次查询,每次询问能否从某个区间 [�,�][l,r] 中选择两个数使得他......
  • Luogu P7191 [COCI2007-2008#6] GRANICA
    https://www.luogu.com.cn/problem/P7191设\(\bmodm=r\),则能得到\(a_i=x_i\timesm+r\)。那么对于相邻的两个数\(a_i,a_{i-1}\)相减,就能得到\((x_i-x_{i-1})\time......
  • 蓝桥真题 - 跑步锻炼
    题目跑步锻炼标签:填空题2020省赛每天跑1km,逢周一或月初每天跑2km,若既是周一又是月初也只跑2km。计算从2000-1-1(含)到2020-10-1(含)共跑了多少千米。代码importdatetim......
  • 蓝桥杯-网络分析
    网络分析小明正在做一个网络实验。他设置了n台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接......
  • luogu P1452 题解
    管理备注:虽然此题解为乱搞,但是本乱搞是非常有意义的经典乱搞,故保留在题解区中供学习与参考。我们充分发扬人类智慧:将所有点全部绕原点旋转同一个角度,然后按\(x\)坐标......
  • luogu P8207 题解
    在暴力建边的情况下可以kruskal求生成树。但是这样是\(O(n^2)\)的。因为\(lcm(x,y)=x\timesy/\gcd(x,y)\)。所以\(\gcd(x,y)\)越大我们的答案越优。但是......