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

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;
}
相关推荐
The丶Closer10 分钟前
10. 排序
java·数据结构·算法·排序算法
liuyang-neu1 小时前
力扣 简单 104.二叉树的最大深度
java·数据结构·算法·leetcode
simple_ssn1 小时前
【C语言刷力扣】2079.给植物浇水
c语言·算法·leetcode
是小恐龙啊1 小时前
单链表的增删改查(数据结构)
c语言·开发语言·数据结构·算法
什码情况1 小时前
报数游戏 - 华为OD统一考试(E卷)
java·python·算法·游戏·华为od·笔试·华为od机试
WenGyyyL2 小时前
准备蓝桥杯和ACM:C++标准库头文件及其常用功能简介
开发语言·c++·算法·蓝桥杯·acm
Helene19002 小时前
Leetcode 45-跳跃游戏 II
算法·leetcode·游戏
毕小宝2 小时前
逻辑回归(上):函数求导过程自推 LaTex 语法
算法·机器学习·逻辑回归
CylMK2 小时前
浅说差分算法(上)
数据结构·c++·算法