问题描述 给你两组点,其中第一组中有 size1 个点,第二组中有 size2 个点,且 size1 >= size2 。 任意两点间的连接成本 cost 由大小为 size1 x size2 矩阵给出,其中 cost[i][j] 是第一组中的点 i 和第二组中的点 j 的连接成本。如果两个组中的每个点都与另一组中的一个或多个点连接,则称
POI2004 Bzoj2066 Gra 简要题意: 长度为 \(m\) 的整数数轴上有 \(n\) 个坐标不同的棋子,保证棋子初始时不在 \(m\),两人轮流移动,每次将一个棋子移动到右边第一个空位置上,将棋子移动到 \(m\) 的人胜利,问先手必胜时第一步有多少种移动方法。 数据规模: \(n \le 10^6,\,m \le 10^9\)。
一般使用kruskal(克鲁斯卡尔)(mlogm) 对于稀疏图,用朴素prim(n^2) prim:每次选择和当前已经构建出的连通块相连,且权重最小的边,加入当前连通块。 一共需要扩展(n-1)次 kruskal:基于并查集。先将所有边从小到大排序,然后枚举每条边,如果边的两个端点还不联通,则将当前边加入最
出一个合法括号序列,如果他的子段也是合法的括号序列,那么直接有一条边相连,问最后括号序列生成的图中有多少个连通分量. https://codeforces.com/contest/1726/problem/C 首先我们回到合法括号序列的定义: 首先空序列是合法的括号序列. 如果是A合法的括号序列,那么(A)也是合法的
1## P3915 树的分解 题目描述 给出\(N\)个点的树和K,问能否把树划分成\(\frac{N}{K}\)个连通块,且每个连通块的点数都是\(K\)。 解题思路 分析样例: 「\(sample1\)」 可被划分为\(1\).\(2\)、\(3\).\(4\)两个大小为\(2\)的连通块。 「\(sample2\)」
题目传送门 题目大意:给定一张边框确定的图,在其中空地放水并满足物理要求,求总方案数 题目分析: 首先注意到,满足物理需求就是满足在一个连通块内从高度为 \(h\) 放水,则满足对于高度为 \(\forall\) \(i\) \(\le\) \(h\)的空地均有水。 那么显而易见,我们可以从下到上枚举高度,对于连通性
专门开个博客一是因为没地放了,二是以后次小生成树什么的就一块扔这了。 点数n,边数m的图的最小生成树大概有两个算法: Kruskal算法(\(O(m\log m)\)) 思路非常简单粗暴,把所有边扔出来按照边权排个序,然后拿并查集维护点的连通关系,最后选出n-1条边。 int kruskal(int x){ sort(ed
题目链接(码学堂) 题目链接(洛谷) 分析:这是一个简单的单一连通块问题 对于这种分类明显的题,我们可以通过分类来界定 一部分是 连通块以外0 vis[i][j]=1; 一部分是 连通块中的1 map[i][j]=1; 一部分是 连通块包含的0 else map[i][j]=2; 这里我们很难保证第一
简洁题意:求出任三点之间是否存在直接连通或都不连通,若存在,输出 WIN ,否则输出 FAIL 由于数据范围非常小, m<=10 ,则我们可以采用暴力枚举三个点的方式求出答案 #include<bits/stdc++.h> #define N 100010 using namespace std; typedef long long ll; ll G[17][17],m,fri,maxn,unfr
首先对于一个点双内的点,一定可以将其边定向成一个强联通分量。所以可以将这个图缩点,问题变到了树上。 将这 \(k\) 个点在树上标记出来,我们需要选取一颗原图的子树满足叶子结点必须是这 \(k\) 个点中的点。(差不多就是建个虚树然后把父子边在原图上对应的边拉出来) 定义每个点的权值
一、题目 点此看题 二、解法 考虑容斥第二个限制,如果钦定 \(a_i=a_j\) 我们就连边 \((i,j)\),具体来说我们枚举边集 \(E\) 的子集 \(S\),设 \(f(S)\) 表示满足 \(\forall (u,v)\in S,a_u=a_v\) 的方案数,那么可以写出基础的容斥: \[\sum_{S} (-1)^{|S|} f(S) \]设 \(h(n)\) 表示大小为
\(\bigstar\) 欧拉路径 若 \(G=(V,\ E)\) 中的一条路径包含了 \(E\) 中的所有边且不重复,则称其为 欧拉路径(\(\textbf{Eulerian Path}\))。 若该路径的起点与终点相同,则称其为 欧拉回路(\(\textbf{Eulerian Circuit}\))。 欧拉路径的存在条件: 此图连通; 对于无向图,当且仅当奇点个数
P1522 [USACO2.4] 牛的旅行 Cow Tours - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) dfs为图中的连通块染色 floyd求出任意两点的最短距离,不连通就INF 求出每个连通块中的每个点到达该连通块中其他点的所有最短路径(floyd求出)中的最大路径并记录,同时不断更新该连通块的直径,也就
洛谷题面传送门 像极了我验的那道牛客多校(第六场 C Forest)…… 考虑对于每条边,计算其在最大生成基环森林中的概率,乘以边权求和就是答案。现在问题在于如何计算每条边在最大生成基环森林中的概率,显然比它权值小(如果权值相同则比较编号)的那些边存不存在不影响这条边是否在最大生成基
CF 1592C Bakry and Partitioning 给定一棵 \(n\) 个节点,每个节点有点权的树,最多拆成 \(k\) 个连通块,问是否有方案使得所有联通块的异或和相等。 \(n,k \le 10^5,a_i \le 10^9\) \(\color{Blue}{1700}\) 对于异或,存在重要性质 \(x\, \text{xor}\, x = 0\)。 设所有数的异或和
题目链接 1175. 最大半连通子图 一个有向图 \(G = (V,E)\) 称为半连通的 (Semi-Connected),如果满足:\(\forall u,v \in V\),满足 \(u \to v\) 或 \(v \to u\),即对于图中任意两点 \(u,v\),存在一条 \(u\) 到 \(v\) 的有向路径或者从 \(v\) 到 \(u\) 的有向路径。 若 \(G’ = (V’,E’)
VP的。 这场 C 是真的恶心,还好一发过了要不然罚时就更起飞了。 D2 考虑枚举 \([l,r]\),判断能否使得所有 \(\lfloor\frac{a_i}{p_i}\rfloor\) 都在 \([l, r]\) 范围内。 对于每个 \(a_i,\lfloor\frac{a_i}{p_i}\rfloor\) 只有 \(\sqrt{n}\) 种值,所以这个判断可以用一个桶实现。 注
洛谷题面传送门 一道思维难度为 \(<\epsilon\) 的题。 首先先考虑单组询问的情况。有个究极暴力的做法,\(dp_{i,x,y,z}\) 表示 \(i\) 子树内三种颜色个数分别为 \(x,y,z\) 的连通块个数,转移相当于合并两个连通块,只能 \(O((na+1)^2(nb+1)^2(nc+1)^2)\) 地进行,因此单组询问复杂度 \(n
【注意】不要死记结论,理解推导过程及其背后的思路更重要! 目录1 树的性质1.1 非平凡树的性质1.2 非空二叉树的性质1.3 完全二叉树的性质1.4 森林的性质1.5 树、二叉树、森林的遍历性质2 图的性质2.1 无向图的性质2.2 有向图的性质2.3 存储结构的性质 1 树的性质 1.1 非平凡树的性质
题目描述 分析 读题不认真这个毛病什么时候能改? 我竟然看成最长上升子序列问题了, 而且还把代码写好.......(其实就算看出来是并查集, 我也不会写qwq)赛后借鉴大佬代码, 收获很大 以后看到连通块这个词, 就往并查集的方向想 AC代码 #include <iostream> #include <cstring> usi
link 实在惭愧,我已经不会写Tarjan了,很久之前学过但到现在已经忘得一干二净了。 其实割点割边和强连通分量的思想都是基于比较dfn和low值(废话Tarjan算法不就是在求这个吗)。而low的定义就十分关键了,在我看来,low的定义是一个点通过不多于一条非树边且不到达自己父亲的前提下能到达的
\(n\)个节点的图,不一定连通,但每个连通块都是欧拉图:\(\large g_n = 2^{\binom{2}{n-1}}\) \(n\)个节点的图,是连通欧拉图:\(\large f_n = g_n-\sum\limits_{i = 1}^{n-1}\left[f_i\cdot g_{n-i}\cdot \dbinom{i-1}{n-1}\right]\)
走廊泼水节 给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。 求增加的边的权值总和最小是多少。 题目分析 看到题面,我们首先需要知道完全图是什么。度娘如是说道:“完全图是一个简单的无向图,其中每对不同的顶点之间都恰
2022 杭电第三场题解 11 给队友贡献了 10 发罚时哈哈哈哈哈哈哈哈哈 1 Equipment Upgrade 当时我把这题丢给队友,队友写了一会儿就 A 了,我还以为什么简单题,结果赛后一看不会做。。。 怎么说呢,把所有 \(E\) 表示成 \(a\times E_0+b\) 确实挺妙的。剩下的就是分治 FFT 了。 2 Boss R
模板题Luogu-P3387 1.DAG 说缩点,就必须要先说DAG 有向无环图(DAG),是一种特殊的有向图,它没有有向环; 这就是个DAG 这个就是不是DAG,那你觉得里面有几个环呢? 事实上只有一个,2-3-4-5是一个环 你可能觉得5-9-8-7也是,但其实它不能算环,因为它们不是一个强连通分量 强连通分量就是若存在点