#include<bits/stdc++.h>
using namespace std;
void solve() {
int n, m; cin >> n >> m;
vector<pair<int, int>> e(m);
for(int i = 0; i < m; i++) {
cin >> e[i].first >> e[i].second;
e[i].first--;
e[i].second--;
}
vector<long long> ans(n, 0LL);
for(int i = 1; i < (1 << n); i++) {
vector<int> v(n);
int _i = i;
int sum = 0;
for(int j = 0; j < n; j++) {
v[j] = _i & 1;
_i >>= 1;
sum += v[j];
}
for(auto x : e) {
if(v[x.first] == 1 && v[x.second] == 0) {
swap(v[x.first], v[x.second]);
}
}
int last = 0, str = 0;
for(int j = 0; j < n; j++) {
if(v[j] == 1 && last != 1) {
str++;
}
last = v[j];
}
if(str == 1) ans[sum - 1] = (ans[sum - 1] + 1) % 2;
}
for(int i = 0; i < n; i++) cout << ans[i] << " ";
cout << "\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
return 0;
}
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 | #include<bits/stdc++.h> using namespace std; void solve() { int n, m; cin >> n >> m; vector<pair<int, int>> e(m); for(int i = 0; i < m; i++) { cin >> e[i].first >> e[i].second; e[i].first--; e[i].second--; } vector<long long> ans(n, 0LL); for(int i = 1; i < (1 << n); i++) { vector<int> v(n); int _i = i; int sum = 0; for(int j = 0; j < n; j++) { v[j] = _i & 1; _i >>= 1; sum += v[j]; } for(auto x : e) { if(v[x.first] == 1 && v[x.second] == 0) { swap(v[x.first], v[x.second]); } } int last = 0, str = 0; for(int j = 0; j < n; j++) { if(v[j] == 1 && last != 1) { str++; } last = v[j]; } if(str == 1) ans[sum - 1] = (ans[sum - 1] + 1) % 2; } for(int i = 0; i < n; i++) cout << ans[i] << " "; cout << "\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); return 0; } |
English