#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

相关推荐

07-25 11:12
重庆大学 C++
既然这么缺人,为什么挂我呢
飞花断音:华为需要学历不高,但是很能干事儿,能吃苦也没怨言,愿意无偿加班,最好上有老下有小,不是独生子女,家庭条件不好,家在外地租房住,生活成本高,不会轻易跳槽,并且愿意接受低工资的奴仆任劳任怨地给任总的女儿买大别墅住
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务