Language: C++

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define poly vector<ll>
#define For(i,l,r) for(int i=(int)(l);i<=(int)(r);i++)
#define Rep(i,r,l) for(int i=(int)(r);i>=(int)(l);i--)
#define pb push_back
inline char gc(){
	static char buf[100000],*p1=buf,*p2=buf;
	return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
#define gc getchar
inline ll read(){
	ll x=0;char ch=gc();bool positive=1;
	for(;!isdigit(ch);ch=gc()) if(ch=='-') positive=0;
	for(;isdigit(ch);ch=gc()) x=x*10+ch-'0';
	return positive?x:-x;
}
inline void write(ll x){
	if(x<0){
		x=-x;putchar('-');
	}
	if(x>=10) write(x/10);
	putchar('0'+x%10);
}
inline void writeln(ll x){write(x);puts("");}
inline void writep(ll x){write(x);putchar(' ');}
inline ull rnd(){
	return ((ull)rand()<<30^rand())<<4|rand()%4;
}
const int N=4e5+5,mo=924844033,FFTN=1<<19;
int W[N],w[N],p[N];
poly R;
int ksm(int x,int p){
	int res=1;
	for(;p;p>>=1,x=(ll)x*x%mo){
		if(p&1) res=(ll)res*x%mo;
	}
	return res;
}
void FFTinit(){
	W[0]=1;W[1]=ksm(5,(mo-1)/FFTN);
	For(i,2,N-1) W[i]=(ll)W[i-1]*W[1]%mo;
}
int FFTinit(int n){
	int L=1;for(;L<=n;L<<=1);R.resize(L);
	For(i,0,L-1) R[i]=(R[i>>1]>>1)|((i&1)?(L>>1):0);
	return L;
}
void DFT(poly &a,int n){
	a.resize(n);For(i,0,n-1) p[R[i]]=a[i];
	for(int d=1;d<n;d<<=1){
		int len=FFTN/(d<<1);
		for(int i=0,j=0;i<d;i++,j+=len) w[i]=W[j];
		for(int i=0;i<n;i+=(d<<1)){
			For(j,0,d-1){
				int y=(ll)w[j]*p[i+j+d]%mo;
				p[i+j+d]=(p[i+j]-y+mo)%mo;
				p[i+j]=(p[i+j]+y)%mo;
			}
		}
	}
	For(i,0,n-1) a[i]=p[i];
}
void IDFT(poly &a,int n){
	DFT(a,n);reverse(a.begin()+1,a.end());
	int inv=ksm(n,mo-2);
	For(i,0,n-1) a[i]=(ll)a[i]*inv%mo;
}
int head[N],opt,f[N];
struct info{
	int to,nxt;
}e[N<<1];
void add(int x,int y){
	e[++opt]=(info){y,head[x]};head[x]=opt;
	e[++opt]=(info){x,head[y]};head[y]=opt;
}
int size[N];
void dfs(int n,int u,int fa){
	size[u]=1;
	for(int i=head[u];i;i=e[i].nxt){
		int k=e[i].to;
		if(k==fa) continue;
		dfs(n,k,u);size[u]+=size[k];
		f[size[k]]++;
	}
	if(fa) f[n-size[u]]++;
}
int fac[N],inv[N];
void init(int n){
	For(i,fac[0]=1,n) fac[i]=(ll)fac[i-1]*i%mo;
	inv[n]=ksm(fac[n],mo-2);
	Rep(i,n-1,0) inv[i]=(ll)inv[i+1]*(i+1)%mo;
}
int C(int n,int m){
	if(n<m) return 0;
	return (ll)fac[n]*inv[m]%mo*inv[n-m]%mo;
}
poly a,b;
poly mul(poly a,poly b){
	int n=a.size(),m=b.size(),len=FFTinit(n+m);
	DFT(a,len);DFT(b,len);
	For(i,0,len-1) a[i]=(ll)a[i]*b[i]%mo;
	IDFT(a,len);return a;
}
int main(){
	init(N-1);FFTinit();
	int n=read();
	For(i,1,n-1) add(read(),read());
	dfs(n,1,0);
	a.resize(n+1);For(i,0,n) a[i]=(ll)f[i]*fac[i]%mo;
	b.resize(n+1);For(i,0,n) b[i]=inv[i];
	reverse(b.begin(),b.end());
	a=mul(a,b);
	For(i,1,n) a[n+i]=(ll)a[n+i]*inv[i]%mo;
	For(i,1,n) writeln(((ll)C(n,i)*n%mo-a[n+i]+mo)%mo);
}

Compiler output:
a.cc: In function 'void dfs(int, int, int)':
a.cc:86:9: error: reference to 'size' is ambiguous
   86 |         size[u]=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:84:5: note:                 'int size [400005]'
   84 | int size[N];
      |     ^~~~
a.cc:90:28: error: reference to 'size' is ambiguous
   90 |                 dfs(n,k,u);size[u]+=size[k];
      |                            ^~~~
/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:84:5: note:                 'int size [400005]'
   84 | int size[N];
      |     ^~~~
a.cc:90:37: error: reference to 'size' is ambiguous
   90 |                 dfs(n,k,u);size[u]+=size[k];
      |                                     ^~~~
/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:84:5: note:                 'int size [400005]'
   84 | int size[N];
      |     ^~~~
a.cc:91:19: error: reference to 'size' is ambiguous
   91 |                 f[size[k]]++;
      |                   ^~~~
/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:84:5: note:                 'int size [400005]'
   84 | int size[N];
      |     ^~~~
a.cc:93:20: error: reference to 'size' is ambiguous
   93 |         if(fa) f[n-size[u]]++;
      |                    ^~~~
/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:84:5: note:                 'int size [400005]'
   84 | int size[N];
      |     ^~~~