#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define Max 100010 const int MOD = 1e9+7; vector q[Max]; int vis[Max]; long long res=1; int flag=1; int n; void dfs(int a) { int k=q[a].size(); int cnt=0; vis[a]=1; for(int i=0;i2){flag=0;return ;} if(cnt!=k) { res*=2; res%=MOD; } while(cnt>0) { res*=cnt;res%=MOD;cnt--; } //cout<>T; int _case=0; while(T--) { cin>>n; flag=1; for(int i=1;i<=n;i++) q[i].clear(); memset(vis,0,sizeof(vis)); int a,b; for(int i=1;i