#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

相关推荐

不愿透露姓名的神秘牛友
06-27 20:55
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务