제출 #1289873

#제출 시각아이디문제언어결과실행 시간메모리
1289873amodiNorela (info1cup18_norela)C++20
20 / 100
977 ms580 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #pragma GCC optimize("O3") #pragma GCC optimization("Ofast,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") vector<vector<bool>>a; int n; int m; vector<int>mn; int mnsz=1e9+5; void f(vector<int>suan,int i,vector<bool>b) { if(count(b.begin(),b.end(),0)==0){ if(suan.size()<=mnsz){ if((suan.size()<mnsz)||(suan.size()==mnsz&&suan<mn)){ mnsz=suan.size(); mn=suan; return; } } }if(i+1>m)return; f(suan,i+1,b); for(int j=0;j<n;j++) { b[j]=b[j]^a[i][j]; } suan.push_back(i+1); if(suan.size()<=mnsz)f(suan,i+1,b); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>m; vector<bool>bas(n,0); vector<int>bombos; a.resize(m,vector<bool>(n)); for(int i=0;i<m;i++) { int k; cin>>k; a[i].resize(k); for(int j=0;j<k;j++) { int x; cin>>x; x--; a[i][x]=1; } } f(bombos,0,bas); cout<<mnsz<<endl; for(int i=0;i<mnsz;i++){ cout<<mn[i]<<" "; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...