F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_20478122_597.cpp:9:2382: error: stray '#' in program
 typedef long long LL; const int maxN = 5e4 + 5; vector<int> g0[maxN], g1[maxN]; int N, M; int dfs_clock; int val[maxN]; int seq[maxN]; int fa[maxN]; int semi[maxN]; int idom[maxN]; int dfn[maxN]; int deep[maxN]; int g[maxN][19]; int ind[maxN]; int ans[maxN]; int get_f(int x) { if(fa[x] == x) return x; int ret = get_f(fa[x]); chkmin(val[x], val[fa[x]]); return fa[x] = ret; } void init() { memset(dfn, 0, sizeof(*dfn) * (N + 1)); dfs_clock = 0; rep(i, 1, N) g0[i].clear(), g1[i].clear(); rep(i, 1, M) { int u, v; scanf("%d%d", &u,&v); g0[u].pb(v); g1[v].pb(u); } } void dfs0(int u) { seq[dfn[u] = ++dfs_clock] = u; rep(i, 0, g0[u].size() - 1) if(dfn[g0[u][i]] == 0) dfs0(g0[u][i]); } int getans(int u) { return !u ? 0 : (ans[u] ? ans[u] : getans(idom[u]) + u); } int getlca(int u, int v) { if(u == 0 || v == 0) return u + v; if(deep[u] < deep[v]) swap(u, v); for(int tmp = deep[u] - deep[v], t = 0;tmp;tmp >>= 1, ++t) if(tmp&1) u = g[u][t]; if(u == v) return u; per(i, 18, 0) if(g[u][i] != g[v][i]) u = g[u][i], v = g[v][i]; return g[u][0]; } void solve() { memset(seq, 0, sizeof(*seq) * (N + 1)); memset(ans, 0, sizeof(*ans) * (N + 1)); dfs0(N); rep(i, 1, N) val[i] = semi[i] = dfn[fa[i] = i]; per(i, N, 2) if(dfn[seq[i]]) { int u = seq[i]; rep(e, 0, g1[u].size() - 1) if(dfn[g1[u][e]]) { get_f(g1[u][e]); chkmin(semi[u], val[g1[u][e]]); } val[u] = semi[u]; rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; if(dfn[u] > dfn[v]) continue; chkmin(val[v], val[u]); fa[get_f(v)]= get_f(u); } } static vector<int> lala[maxN]; rep(u, 1, N) { lala[u].clear(); if(dfn[u]) { rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; if(dfn[v] > dfn[u]) lala[u].pb(v); } } } rep(u, 1, N - 1) if(dfn[u] && seq[semi[u]] != u) lala[seq[semi[u]]].pb(u); rep(u, 1, N) { g0[u] = lala[u]; rep(e, 0, g0[u].size() - 1) ++ind[g0[u][e]]; } static int q[maxN]; int tail = 0, head = 0; rep(i, 1, N) { idom[i] = deep[i] = 0; if(ind[i] == 0 && dfn[i]) { deep[i] = 1; idom[i] = i; memset(g[i], 0, sizeof(g[i])); q[++tail] = i; } } while(tail - head) { int u = q[++head]; if(u != N) deep[u] = deep[idom[u]] + 1; g[u][0] = idom[u]; rep(i, 1, 18) g[u][i] = g[g[u][i - 1]][i - 1]; rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; idom[v] = getlca(idom[v], u); if(--ind[v] == 0) q[++tail] = v; } } ans[N] = N; rep(i, 1, N) if(dfn[i]) ans[i] = getans(i); rep(i, 1, N) printf(i == N ? "%d\n" : "%d ", ans[i]); } int main() { #ifdef Leeson freopen("tmp.in", "r", stdin); freopen("tmp.out", "w", stdout); #endif while(~scanf("%d%d", &N, &M)) init(), solve(); return 0; } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^
0_0_20478122_597.cpp:9:2460: error: stray '#' in program
 typedef long long LL; const int maxN = 5e4 + 5; vector<int> g0[maxN], g1[maxN]; int N, M; int dfs_clock; int val[maxN]; int seq[maxN]; int fa[maxN]; int semi[maxN]; int idom[maxN]; int dfn[maxN]; int deep[maxN]; int g[maxN][19]; int ind[maxN]; int ans[maxN]; int get_f(int x) { if(fa[x] == x) return x; int ret = get_f(fa[x]); chkmin(val[x], val[fa[x]]); return fa[x] = ret; } void init() { memset(dfn, 0, sizeof(*dfn) * (N + 1)); dfs_clock = 0; rep(i, 1, N) g0[i].clear(), g1[i].clear(); rep(i, 1, M) { int u, v; scanf("%d%d", &u,&v); g0[u].pb(v); g1[v].pb(u); } } void dfs0(int u) { seq[dfn[u] = ++dfs_clock] = u; rep(i, 0, g0[u].size() - 1) if(dfn[g0[u][i]] == 0) dfs0(g0[u][i]); } int getans(int u) { return !u ? 0 : (ans[u] ? ans[u] : getans(idom[u]) + u); } int getlca(int u, int v) { if(u == 0 || v == 0) return u + v; if(deep[u] < deep[v]) swap(u, v); for(int tmp = deep[u] - deep[v], t = 0;tmp;tmp >>= 1, ++t) if(tmp&1) u = g[u][t]; if(u == v) return u; per(i, 18, 0) if(g[u][i] != g[v][i]) u = g[u][i], v = g[v][i]; return g[u][0]; } void solve() { memset(seq, 0, sizeof(*seq) * (N + 1)); memset(ans, 0, sizeof(*ans) * (N + 1)); dfs0(N); rep(i, 1, N) val[i] = semi[i] = dfn[fa[i] = i]; per(i, N, 2) if(dfn[seq[i]]) { int u = seq[i]; rep(e, 0, g1[u].size() - 1) if(dfn[g1[u][e]]) { get_f(g1[u][e]); chkmin(semi[u], val[g1[u][e]]); } val[u] = semi[u]; rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; if(dfn[u] > dfn[v]) continue; chkmin(val[v], val[u]); fa[get_f(v)]= get_f(u); } } static vector<int> lala[maxN]; rep(u, 1, N) { lala[u].clear(); if(dfn[u]) { rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; if(dfn[v] > dfn[u]) lala[u].pb(v); } } } rep(u, 1, N - 1) if(dfn[u] && seq[semi[u]] != u) lala[seq[semi[u]]].pb(u); rep(u, 1, N) { g0[u] = lala[u]; rep(e, 0, g0[u].size() - 1) ++ind[g0[u][e]]; } static int q[maxN]; int tail = 0, head = 0; rep(i, 1, N) { idom[i] = deep[i] = 0; if(ind[i] == 0 && dfn[i]) { deep[i] = 1; idom[i] = i; memset(g[i], 0, sizeof(g[i])); q[++tail] = i; } } while(tail - head) { int u = q[++head]; if(u != N) deep[u] = deep[idom[u]] + 1; g[u][0] = idom[u]; rep(i, 1, 18) g[u][i] = g[g[u][i - 1]][i - 1]; rep(e, 0, g0[u].size() - 1) { int v = g0[u][e]; idom[v] = getlca(idom[v], u); if(--ind[v] == 0) q[++tail] = v; } } ans[N] = N; rep(i, 1, N) if(dfn[i]) ans[i] = getans(i); rep(i, 1, N) printf(i == N ? "%d\n" : "%d ", ans[i]); } int main() { #ifdef Leeson freopen("tmp.in", "r", stdin); freopen("tmp.out", "w", stdout); #endif while(~scanf("%d%d", &N, &M)) init(), solve(); return 0; } 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^
0_0_20478122_597.cpp: In function 'int main()':
0_0_20478122_597.cpp:9:2383: error: 'ifdef' was not declared in this scope
 typedef long long LL; const int maxN = 5e4 + 5; vector<int> g0


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2025 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.001000(s) query 1, Server time : 2025-03-13 12:26:12, Gzip enabled