#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i = a; i < b;++i)
#define f first
#define s second
#define mp make_pair
#define pb emplace_back
using namespace std;
int main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
vector<pair<int,int>> V;
vector<int> pot,wyn(40,0);
int n,m;
cin>>n >>m;
FOR(i,0,m){
int x,y;
cin>>x >>y;
V.pb(mp(x,y));
}
pot.pb(1);
FOR(i,1,30){pot.pb(pot[i - 1] * 2);}
FOR(i,1,(1 << (n))){
int x = i;
FOR(j,0,m){
if((pot[V[j].f - 1] & x) != 0 && (pot[V[j].s - 1] & x) == 0){
x-=pot[V[j].f - 1];
x+=pot[V[j].s - 1];
}
}
int suma = 0,poc = -1,k = __builtin_popcount(x);
bool B = false;
FOR(j,0,n){
if(pot[j] & x){
++suma;
}
if((pot[j] & x) == 0 && suma != k && suma != 0){
B = true;
}
}
if(!B){
++wyn[k];
}
}
FOR(i,1,n + 1){
cout<<wyn[i] % 2 <<" ";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <bits/stdc++.h> #define FOR(i,a,b) for(int i = a; i < b;++i) #define f first #define s second #define mp make_pair #define pb emplace_back using namespace std; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); vector<pair<int,int>> V; vector<int> pot,wyn(40,0); int n,m; cin>>n >>m; FOR(i,0,m){ int x,y; cin>>x >>y; V.pb(mp(x,y)); } pot.pb(1); FOR(i,1,30){pot.pb(pot[i - 1] * 2);} FOR(i,1,(1 << (n))){ int x = i; FOR(j,0,m){ if((pot[V[j].f - 1] & x) != 0 && (pot[V[j].s - 1] & x) == 0){ x-=pot[V[j].f - 1]; x+=pot[V[j].s - 1]; } } int suma = 0,poc = -1,k = __builtin_popcount(x); bool B = false; FOR(j,0,n){ if(pot[j] & x){ ++suma; } if((pot[j] & x) == 0 && suma != k && suma != 0){ B = true; } } if(!B){ ++wyn[k]; } } FOR(i,1,n + 1){ cout<<wyn[i] % 2 <<" "; } } |
English