几个数字的乘积等于这几个数字的异或和,这要求这几个数字中只能由一个数字和若干偶数个1组成,按照这个想法用动态规划统计每一段连续1的贡献,并分别统计非1数字的贡献即可。
C++
#include <bits/stdc++.h>
小红是一位热爱数学和计算机科学的年轻人。他一直喜欢思考各种有趣的问题,并利用自己的知识和技能来解决它们。现在小红有一个正整数数组 A ,他想玩一个游戏,找出数组中有多少个连续的子数组,满足以下条件: 子数组中的所有数字相乘的结果和相异或的结果相等。
每有一个满足条件的子数组即得一分,问小红最多能得到多少分?
一个数组的子数组指数组中非空的一段连续数字。
第一行一个正整数 n,代表给出数组长度
第二行 n 个空格分隔的正整数 A;
1⩽n⩽105
1⩽Ai⩽109
输出一个正整数代表答案
输入
5
1 2 3 4 5
输出
5