异或哈希(求区间内所有的数的出现的次数是否为偶数)

Example

InputCopy

2

3 3

1 2 2

1 2

1 3

2 3

5 3

2 1 2 1 1

1 2

1 3

4 5

OutputCopy

NO

NO

YES

NO

NO

YES

思路:异或哈希模板

AC代码:

cpp 复制代码
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

typedef pair<ll, ll>PII;
const int N = 2e6 + 10;
const ll MOD = 1e9 + 7;
const ll INF = 1e18;

//生成随机数
mt19937_64 rng(std::chrono::steady_clock::now().time_since_epoch().count());
ll v[N];

int main()
{
	for(int i = 1; i <= N; i ++)
	{
		v[i] = rng();
	}//生成随机数为了判断区间内所有的数是否都出现偶数次
    int t;
	cin >> t;
	while(t --){
		//相同的时候不会输游戏即打成平局
		int n, q;
		cin >> n >> q;
		vector<ll>s(n + 10);
		for(int i = 1; i <= n; i ++)
		{
			int x;
			cin >> x;
			s[i] = s[i - 1] ^ v[x];
		}
		while(q --){
		    int l, r;
			cin >> l >> r;
			if(s[r] - s[l - 1] != 0) cout << "NO" << endl;
			else cout << "YES" << endl;
		}
	}
	return 0;
}
相关推荐
czlczl200209254 分钟前
算法:组合问题
算法·leetcode·职场和发展
CoderYanger6 分钟前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
Cx330❀17 分钟前
C++ STL set 完全指南:从基础用法到实战技巧
开发语言·数据结构·c++·算法·leetcode·面试
阿昭L2 小时前
堆结构与堆排序
数据结构·算法
2***57422 小时前
人工智能在智能投顾中的算法
人工智能·算法
草莓熊Lotso2 小时前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
mit6.8248 小时前
bfs|栈
算法
CoderYanger9 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
jllllyuz9 小时前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab
稚辉君.MCA_P8_Java10 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法