首页 > 试题广场 >

子数组异或和为0的最多划分

[编程题]子数组异或和为0的最多划分
  • 热度指数:1469 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个整型数组arr,其中可能有正有负有零。你可以随意把整个数组切成若干个不相容的子数组,求异或和为0的子数组最多可能有多少个?整数异或和定义:把数组中所有的数异或起来得到的值。

输入描述:
输出包括两行,第一行一个整数,代表数组长度n。第二行有n个整数,代表数组arr


输出描述:
输出一个整数,表示数组切割最多的子数组的个数。
示例1

输入

10
3 2 1 9 0 7 0 2 1 3

输出

4

说明

最优划分:{3,2,1},{9},{0},{7},{0},{2,1,3} 其中{3,2,1},{0},{0},{2,1,3}的异或和为0

备注:
时间复杂度,空间复杂度

这道题你会答吗?花几分钟告诉大家答案吧!