关于这份代码:
void solved(){
int n , k;
std::cin >> n >> k;
std::vector<std::vector<int>> A(n);
for (int i = 0; i < n; i ++ ){
int x ; std::cin >> x;
for (int j = 0; j < x; j ++ ){
int t; std::cin >> t;
A[i].push_back(t);
}
}
// 60 * (2 * 10 ^ 6) * 20
// 4.8 * 10 ^ 9
i64 ans = 0;
for (int i = 0; i < (1 << n); i ++ ){
std::vector<int> cnt(k + 1);
for (int j = 0; j < n; j ++ ){
if (i >> j & 1){
for (int z = 0; z < int(A[j].size()); z ++ )
cnt[A[j][z]] ^= 1;
}
}
i64 res = 0 , x = k - 1;
for (int j = 1; j <= k; j ++ ){
if (cnt[j] == 1) res = res + (1LL << x);
x -- ;
}
ans = std::max(ans , res);
}
std::cout << ans << '\n';
}
是否应该卡掉这个超时做法 ?