【站务必看】社区站务汇总
2024-07-09 14:47:18
发布于:浙江
目录
请不要回复本帖
请不要回复本帖
请不要回复本帖
全部评论 16
建议回复本贴的全拉黑(不包括我)
2024-11-07 来自 北京
0- 请不要回复本帖
2024-10-04 来自 广东
0《请不要回复本帖》
2024-09-21 来自 浙江
0续举报ID:4270748 当时做题的源代码:
merge(come[u], las), ++out[come[u]], ++in[las]; las = come[u] ^ 1, u = fa[u]; } st[p[i]] = las; break; } } for (int i = 1; i <= N; ++i) printf("%d ", ans[i]); putchar('\n'); for (int i = 1; i <= N; ++i) head[i] = st[i] = ed[i] = deg[i] = used[i] = ans[i] = 0; for (int i = 1; i <= Elen; ++i) in[i] = out[i] = 0; Elen = 1; } return 0; }
2024-09-15 来自 浙江
0ID:4270748
在2024-09-14 20:37:38做的 A41.树上的数 用时61秒,但代码所用时间不合理
以下为ID:4270748在做 A41.树上的数 的源代码:#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 100005; int F[MAXN << 1], siz[MAXN], st[MAXN], ed[MAXN], in[MAXN], out[MAXN]; int get(int x) { if (F[x] != x) F[x] = get(F[x]); return F[x]; } void merge(int x, int y) { x = get(x), y = get(y); if (siz[x] > siz[y]) swap(x, y); siz[y] += siz[x], F[x] = y; } int T, N, p[MAXN], ans[MAXN], deg[MAXN]; struct node { int v, next; } E[MAXN << 1]; int head[MAXN], Elen = 1; void add(int u, int v) { ++Elen, E[Elen].v = v, E[Elen].next = head[u], head[u] = Elen, F[Elen] = Elen, siz[Elen] = 1; } bool ok[MAXN], used[MAXN]; int fa[MAXN], come[MAXN]; void dfs(int u, int ff, int com) { come[u] = com, fa[u] = ff; if (!ff) { for (int i = head[u]; i; i = E[i].next) if (!st[u] && !in[i] && (!ed[u] || get(ed[u]) != get(i) || siz[get(ed[u])] == deg[u])) dfs(E[i].v, u, i ^ 1); } else { if (!ed[u] && !out[com] && (!st[u] || get(st[u]) != get(com) || siz[get(st[u])] == deg[u])) ok[u] = 1; for (int i = head[u]; i; i = E[i].next) if (E[i].v != ff) { if (get(i) != get(com) && !in[i] && !out[com] && i != st[u] && com != ed[u]) { if (get(com) == get(st[u]) && get(i) == get(ed[u]) || get(com) == get(ed[u]) && get(i) == get(st[u])) { if (siz[get(st[u])] + siz[get(ed[u])] != deg[u]) continue; } dfs(E[i].v, u, i ^ 1); } } } } int main() { scanf("%d", &T); while (T--) { scanf("%d", &N); int u, v; for (int i = 1; i <= N; ++i) scanf("%d", &p[i]); for (int i = 1; i < N; ++i) scanf("%d%d", &u, &v), add(u, v), add(v, u), ++deg[u], ++deg[v]; for (int i = 1; i <= N; ++i) { for (int j = 1; j <= N; ++j) ok[j] = 0; dfs(p[i], 0, 0); for (int j = 1; j <= N; ++j) if (j != p[i] && !used[j] && ok[j]) { ans[i] = j, ed[j] = come[j], used[j] = 1; int las = come[j] ^ 1; u = fa[j]; while (u != p[i]) { merge(come[u], las), ++out[come[u]], ++in[las];
2024-09-15 来自 浙江
0ID:4270806
在2024-09-11 06:43:54的时候做的 A29345.统计区间内奇数与偶数的数量 疑似使用Chat GPT且解题只用29秒2024-09-15 来自 浙江
0请不要回复本帖
2024-09-14 来自 浙江
0请不要回复本帖
2024-07-17 来自 广东
0请不要回复本帖
豪德(书呆子emoji,OK手势emoji)
2024-07-17 来自 广东
0AC君,我有个问题,我发了一个小队的招人信息,然后就被下架了555
这是为什么???(无任何违规内容)
T_T2024-07-10 来自 浙江
0发布位置出错
2024-07-15 来自 浙江
0
顶
2024-06-10 来自 广东
0请不要回复本帖!!!!!!!!!!!!!!!!!!!
2023-12-29 来自 浙江
0顶
2023-12-09 来自 广东
0顶
2023-11-01 来自 浙江
0顶
2023-10-23 来自 广东
0顶
2023-10-14 来自 北京
0
有帮助,赞一个