Submission #1161333
Source Code Expand
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<bitset>
#include<string>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<cassert>
#include<sstream>
#include<numeric>
#include<iostream>
#include<algorithm>
#include<functional>
#define For(i,x,y) for (int i=x;i<y;i++)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define dprintf(...) fprintf(stderr,__VA_ARGS__)
using namespace std;
typedef long long ll;
typedef double db;
typedef vector<int> Vi;
typedef pair<int,int> pii;
int IN(){
int c,f,x;
while (!isdigit(c=getchar())&&c!='-');c=='-'?(f=1,x=0):(f=0,x=c-'0');
while (isdigit(c=getchar())) x=(x<<1)+(x<<3)+c-'0';return !f?x:-x;
}
const int N=200000*4+19;
const int p=924844033;
int Pow(int a,int b){
int res=1;
for (;b;b>>=1,a=1ll*a*a%p) if (b&1) res=1ll*res*a%p;
return res;
}
int W[2][N],rev[N],c;
void Prepare(int n){
int pw=1,pi=1,w0=Pow(5,(p-1)/n),i0=Pow(w0,p-2);
For(i,0,n){
W[0][i]=pw,pw=1ll*pw*w0%p;
W[1][i]=pi,pi=1ll*pi*i0%p;
rev[i]=0;
for (int x=i,&y=rev[i],k=1;k<n;k<<=1,x>>=1) y=(y<<1)|(x&1);
}
}
void FFT(int *A,int n,int f){
For(i,0,n) if (i<rev[i]) swap(A[i],A[rev[i]]);
for (int i=1;i<n;i<<=1)
for (int j=0,t=n/(i<<1);j<n;j+=i<<1)
for (int k=j,l=0;k<j+i;k++,l+=t){
int x=A[k],y=1ll*W[f][l]*A[k+i]%p;
A[k]=(x+y)%p;A[k+i]=(x-y+p)%p;
}
if (f){
int tmp=Pow(n,p-2);
For(i,0,n) A[i]=1ll*A[i]*tmp%p;
}
}
struct Edge{
int y,nxt;
} E[N*2];
int fac[N],inv[N],las[N],sz[N],A[N],F[N],B[N];
int n,cnt;
int C(int n,int m){
if (n<m) return 0;
return 1ll*fac[n]*inv[m]%p*inv[n-m]%p;
}
void Link(int x,int y){
E[cnt]=(Edge){y,las[x]};las[x]=cnt++;
E[cnt]=(Edge){x,las[y]};las[y]=cnt++;
}
void dfs(int x,int fa){
sz[x]=1;
for (int i=las[x],y;~i;i=E[i].nxt)
if ((y=E[i].y)!=fa){
dfs(y,x);
sz[x]+=sz[y];
A[sz[y]]++;
}
A[n-sz[x]]++;
}
int main(){
memset(las,-1,sizeof(las));
fac[0]=1;
For(i,1,N) fac[i]=1ll*fac[i-1]*i%p;
inv[N-1]=Pow(fac[N-1],p-2);
for (int i=N-1;i;i--) inv[i-1]=1ll*inv[i]*i%p;
n=IN();
For(i,1,n) Link(IN(),IN());
dfs(1,-1);
For(i,1,n+1) A[i]=1ll*A[i]*fac[i]%p;
For(i,0,n) B[n-i]=inv[i];
for (c=1;c<=n;c<<=1);c<<=1;
Prepare(c);
FFT(A,c,0);FFT(B,c,0);
For(i,0,c) A[i]=1ll*A[i]*B[i]%p;
FFT(A,c,1);
For(k,1,n+1){
F[k]=(1ll*inv[k]%p*A[k+n])%p;
F[k]=(F[k]+1ll*C(n,k)*k+1ll*C(n-1,k)*n)%p;
}
For(i,1,n+1) printf("%d\n",F[i]);
}
Submission Info
Submission Time |
|
Task |
F - Many Easy Problems |
User |
naive_owo_naive |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2547 Byte |
Status |
WA |
Exec Time |
219 ms |
Memory |
42880 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 1900 |
Status |
|
|
Set Name |
Test Cases |
Sample |
example0, example1, example2 |
All |
doublestar0, doublestar1, doublestar2, doublestar3, doublestar4, example0, example1, example2, line0, line1, line2, line3, line4, maxrand0, maxrand1, maxrand10, maxrand11, maxrand12, maxrand13, maxrand14, maxrand15, maxrand16, maxrand17, maxrand18, maxrand19, maxrand2, maxrand3, maxrand4, maxrand5, maxrand6, maxrand7, maxrand8, maxrand9, rand0, rand1, rand2, rand3, rand4, rand5, rand6, rand7, rand8, rand9, star0, star1, star2, star3, star4 |
Case Name |
Status |
Exec Time |
Memory |
doublestar0 |
WA |
205 ms |
34944 KB |
doublestar1 |
WA |
205 ms |
34944 KB |
doublestar2 |
WA |
210 ms |
34944 KB |
doublestar3 |
WA |
206 ms |
34944 KB |
doublestar4 |
WA |
205 ms |
34944 KB |
example0 |
WA |
13 ms |
22784 KB |
example1 |
WA |
13 ms |
22784 KB |
example2 |
WA |
13 ms |
22784 KB |
line0 |
WA |
213 ms |
42880 KB |
line1 |
WA |
213 ms |
42880 KB |
line2 |
WA |
213 ms |
42880 KB |
line3 |
WA |
214 ms |
42880 KB |
line4 |
WA |
214 ms |
42880 KB |
maxrand0 |
WA |
213 ms |
34944 KB |
maxrand1 |
WA |
213 ms |
34944 KB |
maxrand10 |
WA |
216 ms |
34944 KB |
maxrand11 |
WA |
214 ms |
34944 KB |
maxrand12 |
WA |
214 ms |
34944 KB |
maxrand13 |
WA |
216 ms |
34944 KB |
maxrand14 |
WA |
216 ms |
34944 KB |
maxrand15 |
WA |
215 ms |
34944 KB |
maxrand16 |
WA |
215 ms |
34944 KB |
maxrand17 |
WA |
214 ms |
34944 KB |
maxrand18 |
WA |
215 ms |
34944 KB |
maxrand19 |
WA |
216 ms |
34944 KB |
maxrand2 |
WA |
215 ms |
34944 KB |
maxrand3 |
WA |
219 ms |
34944 KB |
maxrand4 |
WA |
214 ms |
34944 KB |
maxrand5 |
WA |
214 ms |
34944 KB |
maxrand6 |
WA |
214 ms |
34944 KB |
maxrand7 |
WA |
214 ms |
34944 KB |
maxrand8 |
WA |
216 ms |
34944 KB |
maxrand9 |
WA |
214 ms |
34944 KB |
rand0 |
WA |
15 ms |
22784 KB |
rand1 |
WA |
14 ms |
22784 KB |
rand2 |
WA |
14 ms |
22784 KB |
rand3 |
WA |
15 ms |
22784 KB |
rand4 |
WA |
14 ms |
22784 KB |
rand5 |
WA |
15 ms |
22784 KB |
rand6 |
WA |
14 ms |
22784 KB |
rand7 |
WA |
15 ms |
22784 KB |
rand8 |
WA |
14 ms |
22784 KB |
rand9 |
WA |
14 ms |
22784 KB |
star0 |
WA |
202 ms |
34944 KB |
star1 |
WA |
207 ms |
34944 KB |
star2 |
WA |
202 ms |
34944 KB |
star3 |
WA |
202 ms |
34944 KB |
star4 |
WA |
202 ms |
34944 KB |