异或^的作用:成对消除,“告”掉,a^a=0,而0^b=b
——————而且异或的好处是不管顺序,即满***换律a^b=b^a
A组的数被B组“告”的只剩一个&&剩下的那一个数是素数 不包含1,1*任何数都不变代码
#include <bits/stdc++.h> using namespace std; int t,n,m,a,s,ans; bool isprime(int n){ if(n==1||n==0) return false ; for(int i=2;i<=n/i;i++) if(n%i==0) return false; return true; } int main(int argc, char** argv) { cin>>t; for(int i=0;i<t;i++){ s=0;ans=0; scanf("%d%d",&n,&m); for(int i=1;i<=n+m;i++){ scanf("%d",&a); if(a!=1){ i>n?s--:s++; ans^=a; } } if(s==1&&isprime(ans)) puts("YES"); else puts("NO"); } return 0; }