Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstring>#define MAXN (1<<14)#define MAXM (1<<15)int e[MAXN][2];int path[MAXM];void Create(int n){int left,right;left=n>>1;right=n&1;e[left][right]=1;}int pathSize;void Dfs(int u,int n){int v;int pow=1<<(n-2);while(e[u][0]+e[u][1]>0){if(e[u][0]==1){e[u][0]=0;v=(u&(pow-1))<<1;Dfs(v,n);}if(e[u][1]==1){e[u][1]=0;v=((u&(pow-1))<<1)+1;Dfs(v,n);