首页 > TAG信息列表 > BJWC2010

[BJWC2010]严格次小生成树

做题时间:2021.8.8 \(【题目描述】\) 给你一张 \(N(1\leq N\leq 10^5)\) 个点 \(M(1\leq M\leq 3\times 10^5)\) 条边的无向图,求出这张图中严格次小生成树。 \(【输入格式】\) 第一行两个整数 \(N,M\) 接下来 \(M\) 行每行三个整数 \(u,v,w\) 表示图上一条边 \(【输出格式】\) 一行

#295. 「BJWC2010」矩阵距离 题解

# #295. 「BJWC2010」矩阵距离又是一道需要真正思考了才可以做出来的~~水题~~。 ## 题目描述 给出一个`N * M `的`01`矩阵, 输出每个`0`到离这个点最近的`1`的距离。 ## 思考历程 ### 暴力 由于 $N \le 10^3 $如果在赛场上出现这个题, 我们优先考虑暴力。 暴力也是很简单,从每个为`0`

P4180 [BJWC2010]严格次小生成树

考虑如果存在两条在最小生成树上的边被换掉了,那么原树会被分成三个联通块。 考虑新加的两条边,保留权值较小的那一条,这样还剩两个连通块。 而删除的两条边至少有一条能联通这两个联通块,所以可以保留那条边。 新加的两条边中权值较大的那一条肯定大于等于我们保留的边,因为它们都起着

P4180-[BJWC2010]严格次小生成树【Kruskal,倍增】

正题 题目链接:https://www.luogu.com.cn/problem/P4180 题目大意 \(n\)个点\(m\)条边的一张无向图,求它的严格次小生成树。 \(1\leq n\leq 10^5,1\leq m\leq 3\times 10^5\) 解题思路 一定存在一种严格次小生成树和最小生成树只差一条边,感性理解的话大概就是如果有两条不同那么

P4180 [BJWC2010]严格次小生成树

题目 题目 思路 最小生成树都会吧? 不会的戳这里 接下来我们用LCA求每一条非树边在树上环的最大边权和次大边权,然后求一个min(s-mx+v,s-mx2+v,mn)就可以了,注意如果mx=v,第一项不比较. code: #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<c

P4180 [BJWC2010]严格次小生成树

P4180 BJWC2010严格次小生成树 先求一遍最小生成树。然后枚举加入哪条边,然后找这两个端点的LCA,记录路径上的最大值和严格次大值(我用了一种偷懒的方法,不过能过)。为什么记录严格次大值?因为我们需要注意最大值等于你加入的边的情况。 /* Name: P4180 Copyright: NO Author: Gensokyo_

[BJWC2010] 严格次小生成树(kruskal+树剖)

这题果然是模板题 一堆做法 但是根本思想是一样的 都是先跑一遍最小生成树,然后维护一下路径上最大值和小于最大值的最大值 主要的实现方法有三种 1.kruskal+倍增+lca 复杂度是O(mlogm)O(mlogm)O(mlogm),优点是复杂度低,常熟不是特别大,代码短,缺点是实现细节多 2.kruskal+lct 复

BZOJ 1977 : [BJWC2010]严格次小生成树 倍增 Kruskal

title BZOJ 1977 LUOGU 4180 Description 小 C 最近学了很多最小生成树的算法,Prim 算法、Kurskal 算法、消圈算法等等。 正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了。 小 P 说,让小 C 求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说: 如果最小生成树选

P4180 严格次小生成树[BJWC2010]

题目链接 当时在暑假早就讲了这道题了,只不过我现在才做了这道题。 题解: 我们要求次小生成树的话,考虑先把最小生成树求出来,因为如果我们用求最小生成树的话,边早已经从大到小排序好了,所以次小生成树的就是替换最小生成树上的一条边所得。 那么考虑如何来替换那一条边,要保证严格次小,

严格次小生成树[BJWC2010]

原文必点 原题链接 题目描述 给定一张\(N\) 个点$ M $条边的无向图,求无向图的严格次小生成树。 设最小生成树的边权之和为\(sum\),严格次小生成树就是指边权之和大于\(sum\)的生成树中最小的一个。 输入格式 第一行包含两个整数\(N\)和\(M\)。 接下来\(M\)行,每行包含三个整数\(x,y,z\)

BZOJ1977/LuoguP4180【模板】严格次小生成树[BJWC2010]

这道题本身思维难度不大,但综合性强,细节多 在其上浪一个早上,你的 最小生成树 树链剖分 线段树 DEBUG能力... 都大幅提升 细节与思路都在代码里面了。 欢迎hack. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define R(a,b,c) for(r

P4180 严格次小生成树[BJWC2010] Kruskal,倍增

题目链接\(Click\) \(Here\)。 题意就是要求一个图的严格次小生成树。以前被题面吓到了没敢做,写了一下发现并不难。 既然要考虑次小我们就先考虑最小。可以感性理解到一定有一种次小生成树,可以由最小生成树删一条边再加一条边得到。我们枚举加上去的这一条边,加上去以后原\(mst\)会