萌新袜子刚学 CSP 全 RE 求助

P3128 [USACO15DEC] Max Flow P

~~抱泠~~爆零 * 2 ``` #include<bits/stdc++.h> #define ll long long #define rll register ll #define F(i,a,b) for(rll i=a;i<=b;i++) #define Fdn(i,a,b) for(rll i=a;i>=b;i--) #define int ll #define itn int #define umap unordered_map #define uset unordered_set #define ld long double #define pii pair<int,int> #define pll pair<long long,long long> #define pb push_back using namespace std; const int inf = 0x3f3f3f3f,mod = 1e9 + 7; const int maxn = 5e4 + 7,Logn = 17; int n,q; vector<int> G[maxn]; int sum[maxn]; int ans; int f[maxn][Logn]; int dep[maxn]; inline void dfs(int u, int fa){ dep[u] = dep[fa] + 1; f[u][0] = fa; for(int i = 1; (1 << i) < dep[u]; i++) f[u][i] = f[f[u][i - 1]][i - 1]; for(auto v : G[u]) if(v != fa) dfs(v, u); } inline int lca_get(int u,int v){ if(dep[u] < dep[v]) swap(u, v); Fdn(i, 16, 0) if(dep[f[u][i]] >= dep[v]) u = f[u][i]; if(u == v) return u; Fdn(i, 16, 0) if(f[u][i] != f[v][i]) u = f[u][i],v = f[v][i]; return f[u][0]; } inline int getans(int u,int fa){ for(int i = 1; (1 << i) < dep[u]; i++) f[u][i] = f[f[u][i - 1]][i - 1]; for(auto v : G[u]){ if(v == fa) continue; getans(v, u); sum[u] += sum[v]; } ans = max(ans, sum[u]); } signed main(){ ios::sync_with_stdio(false); cin.tie(0); cin >> n >> q; F(i, 1, n - 1){ int u, v; cin >> u >> v; G[u].pb(v), G[v].pb(u); } dfs(1, 0); F(i,1,q){ int u, v; cin >> u >> v; int l = lca_get(u, v); sum[u]++, sum[v]++, sum[l]--, sum[f[l][0]]--; } getans(1, 0); cout << ans; return 0; }
by Snowy_Fujisaki @ 2023-09-28 09:28:13


应该是洛谷炸了 我看你代码没问题 交了一下ac了 你再交一次
by hytmnt @ 2023-09-28 10:17:12


你编码不规范的话开氧会re
by hytmnt @ 2023-09-28 10:18:58


你好像有个int型函数没返回值啥的
by hytmnt @ 2023-09-28 10:20:32


你把getans前面的int改成void就行了
by hytmnt @ 2023-09-28 10:22:48


@[hytmnt](/user/363687) @[hytmnt](/user/363687) thx
by Snowy_Fujisaki @ 2023-09-28 14:54:39


|