From dbea5b0a8d385fa636960178c62bcaf28aed87d1 Mon Sep 17 00:00:00 2001 From: hanyixuanten <105723997+hanyixuanten@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:44:27 +0800 Subject: [PATCH] new file: P14359.cpp --- P14359.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 P14359.cpp diff --git a/P14359.cpp b/P14359.cpp new file mode 100644 index 0000000..d23f305 --- /dev/null +++ b/P14359.cpp @@ -0,0 +1,36 @@ +#include +using namespace std; + +const int MAX_N = 5e5 + 5; +const int MAX_XOR = 2e6 + 5e5 + 5; + +int main() +{ + int n, k; + scanf("%d %d", &n, &k); + + vector a(n + 1), pre(n + 1); + for (int i = 1; i <= n; i++) + { + scanf("%d", &a[i]); + pre[i] = pre[i - 1] ^ a[i]; + } + + vector last_pos(MAX_XOR, -1); + last_pos[0] = 0; + + int ans = 0, seg_start = 0; + for (int r = 1; r <= n; r++) + { + int target = pre[r] ^ k; + if (last_pos[target] >= seg_start) + { + ans++; + seg_start = r; + } + last_pos[pre[r]] = r; + } + + printf("%d\n", ans); + return 0; +} \ No newline at end of file