物品异或和
提交数: 2, 通过率: 100%, 平均分: 100
题目描述:
每个物品都有一重量值,小明想从n件物品中挑出k件并分成两组,每组中的所有物品求出异或和。
如果能够分成两组的异或和是一样的,输出yes,否则输出no。
注:在C++语言中用^表示异或运算,例如a异或b,写作a^b,a,b,c的异或之和为a^b^c。
输入格式:
第一行一个正整数 T ,表示有 T 组数据
对于每一组数据,第一行两个正整数 n,k
第二行 n 个整数 \( a_1,a_2, \dots , a_{n−1}, a_n \)
输出格式:
对于每组数据,判断能否选取 k 个人,使得k个物品分成两组它们的异或值是否可以相等。
若可以,输出 yes ,否则输出 no 。
每组输出占一行
样例输入:
1 10 5 1 2 3 4 5 6 7 8 9 10
样例输出:
yes
提示:
对于30%的数据,1<=n<=5
对于另外20%的数据,1<=n<=20
对于100%的数据,1<=T<=10, 1<=k<=n<=30, 0≤ai≤109 , 0 ≤ ai ≤ 109
时间限制: 1000ms空间限制: 256MB