Language: C++

#include <bits/stdc++.h>
using namespace std;

inline int read()
{
	int x=0,f=1,c=getchar();
	while(c<48) c=='-'&&(f=-1),c=getchar();
	while(c>47) x=x*10+c-'0',c=getchar();
	return x*f;
}

const int MAXN = 600005;
const int mod = 922844033;
std::vector<int> G[MAXN];
int f[MAXN],g[MAXN],rev[MAXN];
int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
int n,m;

inline void addedge(int u,int v)
{
	G[u].push_back(v);
	G[v].push_back(u);
}

inline int qpow(int x,int k)
{
	int res=1;
	for(int i=k; i; i>>=1,x=1ll*x*x%mod)
		if(i&1) res=1ll*res*x%mod;
	return res;
}

inline void init(int n)
{
	for(int i=fac[0]=1; i<=n; ++i)
		fac[i]=1ll*fac[i-1]*i%mod;
	ifac[n]=qpow(fac[n],mod-2);
	for(int i=n; i; --i)
		ifac[i-1]=1ll*ifac[i]*i%mod;
}

inline int cat(int n,int k)
{return 1ll*fac[n]*ifac[k]%mod*ifac[n-k]%mod;}

void dfs(int x,int fa)
{
	size[x]=1;
	for(int y : G[x])
		if(y^fa) dfs(y,x),size[x]+=size[y],++cnt[size[y]];
	++cnt[n-size[x]];
}

inline void ntt(int *a,int n,int type)
{
	for(int i=0; i<n; ++i)
		if(i<rev[i]) swap(a[i],a[rev[i]]);
	for(int i=1; i<n; i<<=1)
	{
		int rt=qpow(5,(mod-1)/(i<<1));
		if(type==-1) rt=qpow(rt,mod-2);
		for(int j=0; j<n; j+=(i<<1))
			for(int k=0,w=1; k<i; ++k,w=1ll*w*rt%mod)
			{
				int x=a[j+k],y=1ll*w*a[j+k+i]%mod;
				a[j+k]=(x+y)%mod,a[j+k+i]=(x-y+mod)%mod;
			}
	}
	if(type==1) return;
	int inv=qpow(n,mod-2);
	for(int i=0; i<n; ++i)
		a[i]=1ll*a[i]*inv%mod;
}

int main(int argc, char const *argv[])
{
	n=read();
	for(int i=1; i<n; ++i) addedge(read(),read());
	dfs(1,0); init(n);
	for(int i=1; i<=n; ++i)
		f[i]=1ll*cnt[i]*fac[i]%mod;
	reverse(f,f+n+1);
	for(int i=0; i<=n; ++i) g[i]=ifac[i];
	int lim=1,l=0;
	while(lim<=n+n) lim<<=1,++l;
	for(int i=0; i<lim; ++i)
		rev[i]=(rev[i>>1]>>1)|((i&1)<<(l-1));
	ntt(f,lim,1),ntt(g,lim,1);
	for(int i=0; i<lim; ++i) f[i]=1ll*f[i]*g[i]%mod;
	ntt(f,lim,-1); reverse(f,f+n+1);
	for(int i=1; i<=n; ++i)
	{
		long long t=1ll*ifac[i]*f[i]%mod;
		printf("%lld\n", (1ll*n*cat(n,i)%mod-t+mod)%mod);
	}
	return 0;
}

Compiler output:
a.cc: In function 'void dfs(int, int)':
a.cc:47:9: error: reference to 'size' is ambiguous
   47 |         size[x]=1;
      |         ^~~~
In file included from /usr/include/c++/14/string:53,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52,
                 from a.cc:1:
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:16:36: note:                 'int size [600005]'
   16 | int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
      |                                    ^~~~
a.cc:49:35: error: reference to 'size' is ambiguous
   49 |                 if(y^fa) dfs(y,x),size[x]+=size[y],++cnt[size[y]];
      |                                   ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:16:36: note:                 'int size [600005]'
   16 | int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
      |                                    ^~~~
a.cc:49:44: error: reference to 'size' is ambiguous
   49 |                 if(y^fa) dfs(y,x),size[x]+=size[y],++cnt[size[y]];
      |                                            ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:16:36: note:                 'int size [600005]'
   16 | int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
      |                                    ^~~~
a.cc:49:58: error: reference to 'size' is ambiguous
   49 |                 if(y^fa) dfs(y,x),size[x]+=size[y],++cnt[size[y]];
      |                                                          ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:16:36: note:                 'int size [600005]'
   16 | int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
      |                                    ^~~~
a.cc:50:17: error: reference to 'size' is ambiguous
   50 |         ++cnt[n-size[x]];
      |                 ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:16:36: note:                 'int size [600005]'
   16 | int fac[MAXN],ifac[MAXN],cnt[MAXN],size[MAXN];;
      |                                    ^~~~