首页 > 其他分享 >CF1508C Complete the MST 题解

CF1508C Complete the MST 题解

时间:2024-08-11 18:48:54浏览次数:9  
标签:Complete CF1508C 题解 边权 MST leq 给定 定边

CF1508C

给定一个有 \(n\) 个节点的完全图,其中 \(m\) 条边有给定的边权,剩下的没有给定。

你需要给所有没有给定边权的边赋上非负整数边权,使得所有边的边权的异或和等于 \(0\)。

我们认为这个图的“丑陋值”为这个图的最小生成树的边权之和,求所有可能的赋值方案中,“丑陋值”的最小值。

\(2\leq n\leq2\times10^5;0\leq m\leq\min(2\times10^5,\dfrac{n\times(n-1)}{2}-1)\)。至少有一条边是没有给定边权的。

对于第 \(i\) 条给定边权的边,若用 \(u_i,v_i,w_i\) 表示所连接的两个节点和边权,则 \(1\leq u_i,v_i\leq n;u_i\not=v_i;1\leq w_i<2^{30};\) 不会有边在输入中出现多次。

  • 我们可以把给定的边分为 \(3\) 类

    1. 一定会加入 MST 的边

    2. 一定不会加入 MST 的边

    3. 可能加入 MST 的边

  • 显然的,我们可以只选择一条边为整张图边权的异或值,而剩下的边都为 \(0\),这一定是最优的

  • 关键在于选择哪条边作为有值的边

  • 如果说除去给定的边外的边构成了一个环,那么我们只需要选择这个环上的任意一条边作为有值的边即可

  • 否则此时给定的边一定在原图中非常密集,换句话说就是 \(n\) 会很小,大概在 \(\sqrt m\) 量级

  • 此时我们考虑用 \(1,2\) 类边构成的环来代替这条边,只需要把一二种边加入并查集,对没给定的边判断是否在同一个联通块内

  • 最终复杂度 \(O(n \log n)\)

标签:Complete,CF1508C,题解,边权,MST,leq,给定,定边
From: https://www.cnblogs.com/fox-konata/p/18353734

相关文章

  • ABC366 题解
    D-CuboidSumQuery三维前缀和。不过有一维范围小,可以暴力然后二位前缀和。E-ManhattanMultifocalEllipse横纵坐标的距离是独立的。扫描线扫横坐标,维护每个可行点的纵坐标的距离和,查询就是\(\lex\)的数的个数。可以通过桶做到线性。F-MaximumCompositionExchan......
  • HDU 不要62 题解
    题目传送门思路数位dp数位dp数位dp模版题。依次考虑每一位,满足题目给出的限制,统计数量,是一些较简单的数位dp题目的过程。数位dp运用了差分的思想,即求\(ans(l-r)\)的答案用\(ans(1-r)-ans(1-(l-1))\)来表示.对于本题,我们需要满足的性质很简单:使数不超......
  • P1502 窗口的星星 题解
    题目传送门。思路扫描线扫描线首先,将题目中给出的条件和问题进行转化:首先先不考虑边框上的点不算在内的限制,考虑一个点可以对那些矩形产生贡献。只考虑矩形的右上角,容易发现,每个星星的亮度只对右上角在以星星为左下角的长为\(W\),高为\(H\)的矩形有贡献。如图。那么便可......
  • 洛谷 4道水题 题解(字符串入门)
    题目目录:No.1 B2109统计数字字符个数 No.2 B2110找第一个只出现一次的字符 No.3 B2111基因相关性No.4 B2113输出亲朋字符串OK开始正文!第一题:B2109统计数字字符个数题目描述输入一行字符,统计出其中数字字符的个数。输入格式一行字符串,总长度不超过 255。......
  • ABC366简要题解
    C直接维护一个桶,表示每个元素当前的出现次数。再利用这个桶直接维护答案即可。D三维前缀和模板题。E注意到答案中只会出现\(O(n)\)个不同\(x\),以及\(O(n)\)个不同的\(y\)。于是单独考虑\(x\)和\(y\),最后尺取求一下答案即可。F首先我第一个尝试的思路是贪心,但是......
  • Buuctf-Mysterious另类逆向题解
    下载发现是一个exe可执行文件双击运行,输入密码123456没有任何反应,当然没反应,密码肯定不对请出IDApro,我这里用IDAProv8.3演示,把exe文件拖拽到IDA打开按shift+F12快捷键搜索字符串我们发现第二行有可疑字符串,有flag嫌疑,双击上面的welldonewelldone里“Buff3r_0......
  • Codeforces Round 965 (Div. 2) 题解
    个人难度顺序:A<D<B<C<E。A.FindKDistinctPointswithFixedCenter如果\(k\)是偶数,构造\((x_c+i,yc+i)\),其中\(-\frac{k}{2}\lei\le\frac{k}{2}\)。对于\(k\)是奇数,先加一个点\((xc,yc)\),然后就变成偶数的情况了。B.MinimizeEqualSumSubarr......
  • ABC366-D 题解
    三维前缀和板子。三维前缀和可以类似二维前缀和来做,先给一下二维前缀和数组的计算方法:\[sum_{i,j}=a_{i,j}+sum_{i-1,j}+sum_{i,j-1}-sum_{i-1,j-1}\]同样的,可以写出三维前缀和数组的计算方法:\[sum_{i,j,k}=a_{i,j,k}+sum_{i,j,k-1}+sum_{i,j-1,k}+sum_{i-1,j,k}-sum_{i,j-1,k......
  • [COCI2015-2016#3] NEKAMELEONI 题解
    前言题目链接:洛谷。题意简述你要维护一个序列\(a_i\in[1,k]\)(\(k\leq50\)),支持:单点修改;询问最短的包含全部\(1\simk\)的自区间长度,或报告无解。题目分析我想到了两种做法,写题解以加深印象。方法\(1\):直接用线段树维护只有单点修改,尝试用线段树维护分治。考虑......
  • AtCoder Beginner Contest 366 C,D题解
    C-BallsandBagQuery题解题意没什么好说的,给出q次查询,进行求解思路很简单的一道题,但这篇题解的作用是引出unordered_set,这个东西的作用类似set,但没有排序,相当于哈希。unordered_set有几种操作,接下来介绍三种insert,没什么可说的,普通的插入erase,进行弹出size,返回大......