站外题求助
  • 板块学术版
  • 楼主FYfengye
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/2/6 20:01
  • 上次更新2025/2/6 23:14:28
查看原帖
站外题求助
1055912
FYfengye楼主2025/2/6 20:01

描述

现在有一个长度为 n 的数组 {a n ​ },对于一个区间 [l,r],如果区间中的所有元素 a l ​ ,a l+1 ​ ⋯,a r ​ 的异或和为 0,那么可以对整个数组进行操作,变为:a 1 ​ ,⋯,a l−1 ​ ,a r ​ ,a r−1 ​ ,⋯,a l+1 ​ ,a l ​ ,a r+1 ​ ,⋯,a n ​ ,即:把区间 [l,r] 的元素翻转顺序。

操作的次数是不限的,我们希望最终的数组里有尽量多的区间满足,区间中所有元素异或和为 0,问:这样的区间最多有多少个。

输入描述

从文件 xor.in 读入数据。

第一行一个整数 n。

第二行 n 个整数,代表 {a n ​ } 数组。

输出描述

输出到文件 xor.out。

输出一个整数,代表满足条件的区间数的最大值。

用例输入 1

4 3 1 2 3 用例输出 1

2 提示

测试点限制 对于 10% 的数据,n≤10; 对于 40% 的数据,n≤2000; 另有 10% 的数据,a i ​ 全部相等; 另有 10% 的数据,0≤a i ​ ≤2 10 ; 对于 100% 的数据,n≤10 5 ,0≤a i ​ ≤2 21 。

2025/2/6 20:01
加载中...