Mashmokh's Designed Problem 01生成树

题意

  给一张无向连通图, 每条边可能是黑边或白边, 问是否存在一种生成树构造使得树上黑边数量 = 白边数量 ?

  $1\le n,m\le 100000$ .

分析

  我们可以把 黑边 当做 权值为1的边 , 白边 当做 权值为0的边 .

  这样如果存在一种生成树构造, 使得树上黑边数量 = 白边数量 , 意味着 $n$ 为奇数, 且生成树的边权之和为 $\frac{n-1}{2}$ .

  问题转化为: 对于一张边权为 $0$ 或 $1$ 的无向连通图, 是否有一种生成树, 其边权之和恰好等于 $m$ .

  我们不难发现, 边权之和一定不小于最小生成树的边权之和, 不大于最大生成树的边权之和. 而如果边权为 $0$ 或 $1$ , 我们考虑从最小生成树构造出最大生成树, 其间的连续变化也能构造出任意在最小生成树与最大生成树之间的所有边权之和.

  所以有这样一个结论: 一张边权为 $0$ 或 $1$ 的无向连通图, 它能构造出来的边权之和在 最小生成树的边权之和 与 最大生成树的边权之和 之间, 且对于任意一种边权, 都能构造出来.

  直接求出最小生成树和最大生成树, 然后判定.

Mashmokh's Designed Problem 01生成树

时间: 2024-10-10 01:48:15

Mashmokh's Designed Problem 01生成树的相关文章

[CF414E]Mashmokh's Designed Problem

题意:给一棵树,有三个操作:①询问两点$(x,y)$之间的距离②把$x$和原来的父亲断开并连到它的$h$级祖先,作为新父亲最右的儿子③询问与根节点距离为$k$的点中最右的点是哪个点 用出栈入栈序$s_{1\cdots 2n}$来维护整棵树,入栈记$1$出栈记$-1$,那么一个节点$x$的深度就是$\sum\limits_{i=1}^{in_x}s_x$ 每个平衡树节点记1.这个节点是出栈还是入栈2.子树和3.最大前缀和4.最小前缀和,那么我们就可以在平衡树上二分找到最右的深度为$d$的节点(注意

@codeforces - [email protected] Mashmokh's Designed Problem

目录 @[email protected] @[email protected] @accepted [email protected] @[email protected] @[email protected] 给定一棵 n 个点的树,每个点的儿子是有序的. 现给定 m 次操作,每次操作是下列三种中的一种: (1)给定 u, v,询问 u, v 之间的距离. (2)给定 v, h,断开 v 到父亲的边,将 v 这棵子树加入到它的第 h 个祖先的最后一个儿子. (3)给定 k,询问在当前这棵树上

生成树

[BZOJ 3534] 重建 题意 给定一张 n (1 < n <= 50) 个点 m 条边的无向图, 每条边有一定出现的概率, 问出现的边恰好形成一个生成树的概率. 实现 注意到对于出现概率为 1 的边, 分母可能为 0 . 我们对 d = 1 变换为 d = 1-EPS 就好了. 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cctype>

HDOJ 2769 Disgruntled Judge 扩展GCD

扩展GCD: 枚举a,扩展GCD求b,再暴力检查 Disgruntled Judge Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 329    Accepted Submission(s): 142 Problem Description Once upon a time, there was an nwerc judge with

hdu 5887 搜索+剪枝

Herbs Gathering Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 687    Accepted Submission(s): 145 Problem Description Collecting one's own plants for use as herbal medicines is perhaps one of t

Levmar:Levenberg-Marquardt非线性最小二乘算法

Levmar:Levenberg-Marquardt非线性最小二乘算法 [email protected] Abstract. Levmar is GPL native ANSI C implementations of the Levenberg-Marquardt optimization algorithm.The blog focus on the compilation of levmar on Windows with Visual Studio. Key Words. Levmar

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求