#include <iostream> #include <set> int main() { int N; while (std::cin >> N) { int val, xor_val, ans = 0; std::set<int> s; for (int i = 0; i < N; ++i) { scanf("%d", &val); //如果输入0, 则ans+1, 并重新开始计算 if (val == 0) { ++ans; s.clear(); } //每次重新开始计算时, 第一个元素直接存储 else if (s.size() == 0) { xor_val = val; s.insert(xor_val); } else { xor_val = xor_val ^ val; if (s.find(xor_val) != s.end() || xor_val == 0) { ++ans; s.clear(); } else { s.insert(xor_val); } } } std::cout << ans << std::endl; } return 0; }
点赞 3
牛客网
牛客企业服务