Submission #1689596
Source Code Expand
#include <cmath>
#include <cstdio>
#include <algorithm>
#define Pi acos(-1.0)
using namespace std;
const int N=2e5+10,Mod=924844033;
struct Edge{ int to,next;} way[N<<1];
int n,num[N],tot,A[N],B[N],P[N],F[N<<4],fact[N],fact_inv[N];
void Build(int a,int b) { way[++tot]=(Edge){b,num[a]}; num[a]=tot; }
void Init()
{
scanf("%d",&n);
int a,b;
for (int i=2;i<=n;++i)
{
scanf("%d%d",&a,&b);
Build(a,b); Build(b,a);
}
}
int son[N];
void Dfs(int x,int fa)
{
son[x]=1;
for (int i=num[x];i;i=way[i].next)
{
int v=way[i].to;
if (v==fa) continue;
Dfs(v,x);
son[x]+=son[v];
A[son[v]]--;
}
if (n-son[x]) A[n-son[x]]--;
}
int R[N<<2],L;
int inv(int x)
{
int t=Mod-2,ret=1;
while (t)
{
if (t&1) ret=1ll*ret*x%Mod;
x=1ll*x*x%Mod;
t>>=1;
}
return ret;
}
int qpow(int x,int k)
{
int ret=1;
while (k)
{
if (k&1) ret=1ll*ret*x%Mod;
x=1ll*x*x%Mod;
k>>=1;
}
return ret;
}
void ntt(int *a,int f){
for(int i=0;i<n;i++)if(i<R[i])swap(a[i],a[R[i]]);
for(int i=1;i<n;i<<=1){
int gn=qpow(5,(Mod-1)/(i<<1));
for(int j=0;j<n;j+=i<<1){
int g=1;
for(int k=0;k<i;k++,g=1ll*g*gn%Mod){
int x=a[j+k],y=1ll*g*a[j+k+i]%Mod;
a[j+k]=(x+y)%Mod;
a[j+k+i]=(x-y+Mod)%Mod;
}
}
}
if(f==-1){
reverse(a+1,a+n);
int ny=qpow(n,Mod-2);
for(int i=0;i<n;i++)a[i]=1ll*a[i]*ny%Mod;
}
}
void Solve()
{
Dfs(1,0);A[n]=n;
fact[0]=1; for (int i=1;i<=n;++i) fact[i]=1ll*fact[i-1]*i%Mod;
int ny=inv(fact[n]);fact_inv[n]=ny;
for (int i=n-1;i;--i) fact_inv[i]=1ll*fact_inv[i+1]*(i+1)%Mod;
fact_inv[0]=1;
for (int i=0;i<=n;++i) B[i]=fact_inv[i];
for (int i=0;i<=n;++i) A[i]=1ll*(A[i]+Mod)*fact[i]%Mod;
for (int i=0;i<=n;++i) P[i]=A[n-i];
int m=n,_n=n;
for(n=1;n<=m<<1;n<<=1) L++;
for(int i=0;i<n;i++)R[i]=R[i>>1]>>1|((i&1)<<(L-1));
ntt(P,1); ntt(B,1);
for(int i=0;i<n;i++)F[i]=1ll*P[i]*B[i]%Mod;
ntt(F,-1);
for (int i=_n-1;i>=0;--i)
printf("%lld\n",1ll*F[i]*fact_inv[_n-i]%Mod);
}
int main()
{
Init();
Solve();
return 0;
}
Submission Info
Submission Time
2017-10-17 10:35:51+0900
Task
F - Many Easy Problems
User
Mcallor
Language
C++14 (GCC 5.4.1)
Score
0
Code Size
2219 Byte
Status
WA
Exec Time
192 ms
Memory
26112 KB
Compile Error
./Main.cpp: In function ‘void Init()’:
./Main.cpp:18:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:22:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&a,&b);
^
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
182 ms
18048 KB
doublestar1
WA
182 ms
18048 KB
doublestar2
WA
182 ms
18048 KB
doublestar3
WA
182 ms
18048 KB
doublestar4
WA
182 ms
18048 KB
example0
AC
2 ms
10368 KB
example1
AC
3 ms
10368 KB
example2
AC
2 ms
10368 KB
line0
WA
189 ms
25984 KB
line1
WA
189 ms
25984 KB
line2
WA
189 ms
26112 KB
line3
WA
189 ms
25984 KB
line4
WA
189 ms
25984 KB
maxrand0
WA
189 ms
18176 KB
maxrand1
WA
190 ms
18176 KB
maxrand10
WA
191 ms
18176 KB
maxrand11
WA
189 ms
18176 KB
maxrand12
WA
189 ms
18176 KB
maxrand13
WA
189 ms
18176 KB
maxrand14
WA
189 ms
18176 KB
maxrand15
WA
191 ms
18176 KB
maxrand16
WA
189 ms
18176 KB
maxrand17
WA
189 ms
18176 KB
maxrand18
WA
192 ms
18176 KB
maxrand19
WA
189 ms
18176 KB
maxrand2
WA
189 ms
18048 KB
maxrand3
WA
189 ms
18176 KB
maxrand4
WA
189 ms
18176 KB
maxrand5
WA
189 ms
18176 KB
maxrand6
WA
189 ms
18176 KB
maxrand7
WA
191 ms
18176 KB
maxrand8
WA
191 ms
18176 KB
maxrand9
WA
189 ms
18176 KB
rand0
AC
5 ms
10496 KB
rand1
AC
2 ms
10368 KB
rand2
AC
4 ms
10496 KB
rand3
AC
4 ms
10496 KB
rand4
AC
3 ms
10368 KB
rand5
AC
4 ms
10496 KB
rand6
AC
4 ms
10368 KB
rand7
AC
4 ms
10496 KB
rand8
AC
3 ms
10368 KB
rand9
AC
3 ms
10368 KB
star0
WA
180 ms
18048 KB
star1
WA
180 ms
18048 KB
star2
WA
180 ms
18048 KB
star3
WA
180 ms
18048 KB
star4
WA
180 ms
18048 KB