这可能是本次ACM欢乐赛记录最全的一篇wiki。

出题做题组

出题组 HZOI出题组

做题组

\(\large ACM1\)\(\small (rk4)\) 太阳穴用脚趾缝熬驴肉粥并学会对打高尔夫取模

将智富 田叶萱 梁锐泽

\(\large ACM2\)\(\small (rk2)\) 获金

田有策 刘子昂 刘昭旭

\(\large ACM3\)\(\small (rk1)\) (不是这匹配机制啥呀)自由落体算了

施嘉正 吕家成 李毓泽

\(\large ACM4\)\(\small (rk4)\) 称满99.9头大象免费送DS曲奇

曹子仲 宋泽明 瞿起昊

排行榜RANK

ICPC排行榜

ICPC

IOI排行榜

IOI

题目

T1-A 1!2!3!

题目描述

给定一个长度为 \(n\) 的序列 \(a\),其中每个元素都只可能是 \(1,2,3\)。你需要支持以下两种操作:

  1. 修改操作:给定区间 \([l,r]\),将区间内每个数分别进行一次循环变换:

    \[1\to 2,\qquad 2\to 3,\qquad 3\to 1 \]

    修改会永久改变序列。

  2. 查询操作:给定区间 \([l,r]\),你可以在 \([l,r]\) 内选择一个子区间,对该子区间内的所有数分别进行一次上述循环变换;也可以选择不进行任何变换。求操作后区间 \([l,r]\) 内所有数的按位异或和的最大值。

注意:每次查询至多进行一次循环变换,且查询不会改变原序列。

输入格式

第一行输入两个整数 \(n\) 和 \(q\),分别表示序列长度和操作次数。

第二行 \(n\) 个整数 \(a_1, a_2, \dots, a_n\),表示初始时的序列。

接下来 \(q\) 行,每行格式为以下两种之一:

  • 1 l r:表示对区间 \([l,r]\) 进行一次修改。
  • 2 l r:表示对区间 \([l,r]\) 进行一次查询。

输出格式

对于每次查询操作,输出一行一个整数,表示查询的结果。

输入输出样例 #1

输入 #1

5 6
2 2 1 2 3
1 3 4
1 3 5
2 4 4
1 4 4
2 3 3
2 1 2

输出 #1

2
3
1

输入输出样例 #2

输入 #2

10 12
2 2 2 2 3 2 1 1 1 1 
1 7 9
2 2 9
2 2 6
2 6 10
1 7 8
2 3 6
2 4 10
2 1 5
1 6 8
1 1 6
1 1 2
2 3 4

输出 #2

3
3
3
3
3
3
2

说明/提示

数据范围:

  • \(1 \le n,q \le 2 \times 10^5\)。
  • 初始序列满足 \(a_i \in \{1,2,3\}\),即 \(a_i\) 仅取 \(1,2,3\) 三种值。
  • 对于每次修改或查询操作,均保证 \(1 \le l \le r \le n\)。

题解:https://www.luogu.com.cn/paste/128yqimq