with(combinat); trees_deg2 := proc(n) option remember; local ind, d, a, mset, deg, res; if n=1 then return 0 fi; res := 0; for ind from n^(n-2) to 2*n^(n-2)-1 do d := convert(ind, base, n); a := [seq(d[q]+1, q=1..n-2)]; mset := convert(a, `multiset`); deg := map(ent -> ent[2]+1, mset); if member(2, deg) then res := res + 1; fi; od; res; end; T := n -> `if`(n=1, 0, (n-2)!*add(binomial(n,q)*(-1)^(q+1)*(n-q)^(n-2-q)/(n-2-q)!, q=1..n-2));