摘要:
题解 贪心,从上向下,如果$s[u] = 1$,则$a[u]:=$以$u$为根的子树中的最小$s$减去$s[pa[u]]$。否则,$a[u]:=s[u] s[pa[u]]$。 代码 ~~~c++ void DFS1(int u, int pa) { for (auto v : G[u]) if (v 阅读全文
摘要:
题意 $n$个点$m$条带权边的无向连通图$G$,记$G$的最小生成树集合$minTree$,求满足$edge \in minTree_i(1\leq i \leq size(minTree))$的条数。(既这条边要在$G$的所有最小生成树中出现) $2 \leq n n m p; Rep(i, 1 阅读全文
摘要:
题解 考虑一个点的贡献,如果过这个点的路径,有偶数条,则贡献为0,否则贡献为这个点的权值。最后所有点的贡献的异或和就是答案。 代码 ~~~c++ include using namespace std; const int N = 500005; int n; int cnt[N], a[N]; v 阅读全文
摘要:
读懂题意就好,有个最直接的想法,枚举$a,b$,复杂度$O(n^2)$。然而换成枚举$a,x$,复杂度$O(nlg(n))$。$$和$$的贡献只能算一次。 代码 ~~~c++ include using namespace std; int n; long long ans; int main() 阅读全文