NC212840. xor
描述
输入描述
第一行输入两个整数,表示题目描述中的。接下来一行输入个整数,表述数组。
输出描述
每组数据输出一个整数,表示方案数对取余数的结果
示例1
输入:
3 1 1 1 1
输出:
2
说明:
C++(clang++ 11.0.1) 解法, 执行用时: 103ms, 内存消耗: 9764K, 提交时间: 2022-10-19 17:00:24
#include <bits/stdc++.h> using namespace std; const int mod = 1e9+7; int n,x; int main() { map<int,int>mp; cin>>n>>x; int now=0; int result=0; int t; mp[0]=1; for(int i=1;i<=n;i++) { scanf("%d",&t); now^=t; result=mp[now^x]; mp[now]=(mp[now]+result)%mod; } cout<<result; }
Python3(3.9) 解法, 执行用时: 153ms, 内存消耗: 28908K, 提交时间: 2020-10-29 19:44:42
n, x = map(int, input().split()) plans = {0:1} nums = list(map(int, input().split())) xor = 0 result = 0 for num in nums: xor ^= num result = plans.setdefault(xor^ x, 0) plans[xor] = (plans.setdefault(xor,0) + result) % int(1e9 + 7) print("{}".format(result))