Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const int MAXN = 2e3+23;int n,m,t,val[MAXN],p[MAXN],v,s;int dp[MAXN][MAXN];int solve(){for(int i = 1;i <= n; ++i){for(int j = 0;j < (1<<m); ++j){if(!dp[i-1][j] && j) continue;dp[i][j] = max(dp[i][j],dp[i-1][j]);dp[i][j^p[i]] = max(dp[i][j^p[i]],dp[i-1][j]+val[i]);}}return dp[n][(1<<m)-1];}int main(){cin>>t;while(t--){cin>>n>>m;memset(dp,0,sizeof(dp));memset(p,0,sizeof(p));for(int i = 1;i <= n; ++i){cin>>val[i]>>s;while(s--){cin>>v;p[i] ^= (1<<(v-1));}