#include <bits/stdc++.h> using namespace std; pair<int,int> T[1010]; int wyn[40]; void spr(int n, int m, int j, vector<int> w){ if(j <0){ int il = 0; for(int i = 1; i <= n; i++){ if(w[i]==1){ il++; } } wyn[il]++; return; } if(w[T[j].first] == 0 && w[T[j].second] == 1){ vector<int> w2 = w; swap(w2[T[j].first], w2[T[j].second]); spr(n, m, j-1, w2); spr(n, m, j-1, w); return; } if(w[T[j].first] == 1 & w[T[j].second] == 0){ return; } spr(n,m, j-1, w); return; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin>>n>>m; for(int i =0;i<m;i++){ cin>>T[i].first>>T[i].second; } vector<int> pom; for(int i = 0; i<=n; i++){ pom.push_back(0); } for(int i=1; i<=n; i++){ vector<int> pom2 = pom; for(int j = i; j<=n; j++){ pom2[j]=1; spr(n,m,m-1,pom2); } } for(int i=1; i<=n; i++){ cout<<wyn[i]%2<<" "; } cout<<"\n"; 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 47 48 49 50 51 52 53 54 55 56 57 | #include <bits/stdc++.h> using namespace std; pair<int,int> T[1010]; int wyn[40]; void spr(int n, int m, int j, vector<int> w){ if(j <0){ int il = 0; for(int i = 1; i <= n; i++){ if(w[i]==1){ il++; } } wyn[il]++; return; } if(w[T[j].first] == 0 && w[T[j].second] == 1){ vector<int> w2 = w; swap(w2[T[j].first], w2[T[j].second]); spr(n, m, j-1, w2); spr(n, m, j-1, w); return; } if(w[T[j].first] == 1 & w[T[j].second] == 0){ return; } spr(n,m, j-1, w); return; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin>>n>>m; for(int i =0;i<m;i++){ cin>>T[i].first>>T[i].second; } vector<int> pom; for(int i = 0; i<=n; i++){ pom.push_back(0); } for(int i=1; i<=n; i++){ vector<int> pom2 = pom; for(int j = i; j<=n; j++){ pom2[j]=1; spr(n,m,m-1,pom2); } } for(int i=1; i<=n; i++){ cout<<wyn[i]%2<<" "; } cout<<"\n"; return 0; } |