国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

D. Maximum Distance(最小生成樹(shù))

這篇具有很好參考價(jià)值的文章主要介紹了D. Maximum Distance(最小生成樹(shù))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Problem - D - Codeforces

D. Maximum Distance(最小生成樹(shù))

?

Chouti已經(jīng)厭倦了乏味的作業(yè),于是他打開(kāi)了數(shù)年前創(chuàng)建的一個(gè)舊編程問(wèn)題。

給定一個(gè)具有n個(gè)節(jié)點(diǎn)和m條加權(quán)邊的連通無(wú)向圖。其中有k個(gè)特殊節(jié)點(diǎn):x1,x2,...,xk。

現(xiàn)在定義路徑的成本為其邊權(quán)的最大值。兩個(gè)頂點(diǎn)之間的距離定義為連接它們的路徑的最小成本。

對(duì)于每個(gè)特殊節(jié)點(diǎn),請(qǐng)找到與其距離最遠(yuǎn)(根據(jù)上述定義,即相應(yīng)距離是可能的最大值)的另一個(gè)特殊節(jié)點(diǎn),并輸出它們之間的距離。

由于原始限制非常小,所以他認(rèn)為這個(gè)問(wèn)題很無(wú)聊?,F(xiàn)在,他提高了限制,并希望您能為他解決這個(gè)問(wèn)題。

輸入 第一行包含三個(gè)整數(shù)n、m和k(2≤k≤n≤105,n?1≤m≤105)——節(jié)點(diǎn)數(shù)、邊數(shù)和特殊節(jié)點(diǎn)數(shù)。

第二行包含k個(gè)不同的整數(shù)x1,x2,…,xk(1≤xi≤n)。

接下來(lái)的m行,每行包含三個(gè)整數(shù)u、v和w(1≤u,v≤n,1≤w≤109),表示存在一條權(quán)值為w的邊連接u和v。給定的圖是無(wú)向的,因此邊(u,v)可以在兩個(gè)方向上使用。

圖可能有多條邊和自環(huán)。

保證圖是連通的。

輸出 第一行應(yīng)包含k個(gè)整數(shù)。第i個(gè)整數(shù)是xi與離它最遠(yuǎn)的特殊節(jié)點(diǎn)之間的距離。

Examples

input

Copy

2 3 2
2 1
1 2 3
1 2 2
2 2 1

output

Copy

2 2 

input

Copy

4 5 3
1 2 3
1 2 5
4 2 1
2 3 2
1 4 4
1 3 3

output

Copy

3 3 3 

在第一個(gè)例子中,頂點(diǎn) 1 和頂點(diǎn) 2 之間的距離等于 2,因?yàn)樗鼈冎g有一條權(quán)重為 2 的邊。因此,對(duì)于頂點(diǎn) 1 和頂點(diǎn) 2 來(lái)說(shuō),到最遠(yuǎn)節(jié)點(diǎn)的距離都是 2。

在第二個(gè)例子中,可以發(fā)現(xiàn)頂點(diǎn) 1 和頂點(diǎn) 2 之間、頂點(diǎn) 1 和頂點(diǎn) 3 之間的距離都是 3,而頂點(diǎn) 2 和頂點(diǎn) 3 之間的距離是 2。

該圖可能存在多個(gè)邊和自環(huán),如第一個(gè)例子所示。

題解:
由于我們找的是特殊節(jié)點(diǎn)之間的最短距離,這道題比較特殊的是兩點(diǎn)間的路徑長(zhǎng)度為,中間遍歷過(guò)的最大邊權(quán)值

由于題中兩點(diǎn)距離是最小成本,相當(dāng)于兩點(diǎn)最小的路徑長(zhǎng)度,既然求的最小我們可以先利用最小生成樹(shù),把不需要的邊去掉,這樣一定最優(yōu)

現(xiàn)在就變成了一棵樹(shù)了,那么從任意一個(gè)特殊點(diǎn)開(kāi)始,到其他所有特殊點(diǎn),中途遍歷過(guò)最長(zhǎng)的邊權(quán),就是

離它最遠(yuǎn)的特殊節(jié)點(diǎn)之間的距離

這個(gè)距離對(duì)于所有特殊點(diǎn),都適用

因?yàn)槲覀兪菑囊粋€(gè)特殊點(diǎn)開(kāi)始的,我們找的這個(gè)最長(zhǎng)邊權(quán)的兩側(cè),肯定都有特殊點(diǎn),這樣兩邊的點(diǎn)都可以經(jīng)過(guò)這個(gè)最長(zhǎng)邊權(quán)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428476.html

#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
#define int long long
typedef pair<int,int> PII;
int mod = 998244353;
int n,m,k;
struct node
{
	int l,r,x;
}a[100050];
int b[100050];
int f[100050];
int cmp(node a,node b)
{
	return a.x < b .x;
}
int find(int x)
{
	if(f[x] == x)
	return x;
	return f[x] = find(f[x]);
}
vector<PII> p[100050];
int d[100050];
void dfs(int x,int fa)
{
	for(PII ne:p[x])
	{
		if(ne.first == fa)
		continue;
		d[ne.first] = max(d[x],ne.second);
		dfs(ne.first,x);
	}
}
void solve()
{
	cin >> n >> m >> k;
	for(int i = 1;i <= k;i++)
	{
		cin >> b[i];
	}
	for(int i = 1;i <= m;i++)
	{
		cin >> a[i].l >> a[i].r >> a[i].x; 
	}
	for(int i = 1;i <= n;i++)
	f[i] = i; 
	sort(a + 1,a + 1 + m,cmp);
	for(int i = 1;i <= m;i++)
	{
		int x = find(a[i].l);
		int y = find(a[i].r);
		if(x != y)
		{
			f[x] = y;
			p[a[i].l].push_back({a[i].r,a[i].x});
			p[a[i].r].push_back({a[i].l,a[i].x});
		}
	}
	dfs(b[1],0);
	int ma = 0;
	for(int i = 1;i <= k;i++)
	ma = max(ma,d[b[i]]);
	for(int i = 1;i <= k;i++)
	cout << ma <<" ";
}
//5 7 8 9 10

signed main()
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);
	int t = 1;
//	cin >> t;
	while(t--)
	{
		solve(); 
	}
}

到了這里,關(guān)于D. Maximum Distance(最小生成樹(shù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Codeforces Round 892 (Div. 2) D. Andrey and Escape from Capygrad

    Codeforces Round 892 (Div. 2) D. Andrey and Escape from Capygrad

    題意:給定區(qū)間[l,r],[a,b],[a,b]包含于[l,r],可以從任意[l,r]的區(qū)間傳送至[a,b],給定指定的點(diǎn)求能傳送的最遠(yuǎn)距離。 思路:可以將區(qū)間簡(jiǎn)化為[l,b],因?yàn)閘可以看作是最左邊,b可以看作是能到達(dá)的最右端點(diǎn),然后進(jìn)行區(qū)間合并即可。 對(duì)于查詢(xún),我們使用二分去找?x所在的區(qū)間,方法

    2024年02月13日
    瀏覽(20)
  • Codeforces Round 768 (Div. 1) D. Flipping Range(思維題 等價(jià)類(lèi)性質(zhì) dp)

    Codeforces Round 768 (Div. 1) D. Flipping Range(思維題 等價(jià)類(lèi)性質(zhì) dp)

    題目 思路來(lái)源 官方題解 洛谷題解 題解 可操作的最短區(qū)間長(zhǎng)度肯定是gcd,記為g,然后考慮如何dp 考慮g個(gè)等價(jià)類(lèi),每個(gè)等價(jià)類(lèi)i,i+g,i+2*g,... 每次翻轉(zhuǎn)長(zhǎng)度為g的區(qū)間,會(huì)同時(shí)影響到g個(gè)等價(jià)類(lèi)總的翻轉(zhuǎn)的奇偶性, 性質(zhì)一:只有每個(gè)等價(jià)類(lèi)翻的次數(shù)奇偶性相同才合法? 性質(zhì)二:此

    2024年01月19日
    瀏覽(16)
  • Codeforces Round 890 (Div. 2) D. More Wrong(交互題 貪心/啟發(fā)式 補(bǔ)寫(xiě)法)

    Codeforces Round 890 (Div. 2) D. More Wrong(交互題 貪心/啟發(fā)式 補(bǔ)寫(xiě)法)

    題目 t(t=100)組樣例,長(zhǎng)為n(n=2000)的序列 交互題,每次你可以詢(xún)問(wèn)一個(gè)區(qū)間[l,r]的逆序?qū)?shù),代價(jià)是 要在的代價(jià)內(nèi)問(wèn)出最大元素的位置,輸出其位置 思路來(lái)源 neal Codeforces Round 890 (Div. 2) supported by Constructor Institute D (交互+分治) 附加強(qiáng) - 知乎 題解 賽中開(kāi)題順序大失敗沒(méi)看這個(gè)

    2024年02月14日
    瀏覽(15)
  • Codeforces Round 169 (Div. 2)C. Little Girl and Maximum Sum(差分、貪心)

    Codeforces Round 169 (Div. 2)C. Little Girl and Maximum Sum(差分、貪心)

    C. Little Girl and Maximum Sum 給q個(gè)[l,r]將所有這些區(qū)間里面的數(shù)相加和最大。 可以進(jìn)行的操作是任意排列數(shù)組 對(duì)出現(xiàn)的每個(gè)區(qū)間內(nèi)的位置加上1,代表權(quán)值 操作完之后求一遍前綴和,得到每個(gè)位置的權(quán)值 然后貪心的考慮,權(quán)值越大,應(yīng)該分配給該位置的數(shù)越大越好這樣對(duì)答案的貢

    2024年02月21日
    瀏覽(22)
  • 動(dòng)態(tài)規(guī)劃問(wèn)題-最小編輯距離(Minimum Edit Distance)

    動(dòng)態(tài)規(guī)劃問(wèn)題-最小編輯距離(Minimum Edit Distance)

    我們今天要探討的動(dòng)態(tài)規(guī)劃問(wèn)題來(lái)源于俄羅斯科學(xué)家Levenshtein提出的兩個(gè)對(duì)象之間的不相似度,在音頻、語(yǔ)言翻譯等領(lǐng)域有廣泛的應(yīng)用。如果用于評(píng)估字符串之間的不相似度,那么又稱(chēng)為最小編輯距離MED(Minimum Edit Distance),它規(guī)定從string 1到轉(zhuǎn)換成 string 2的最少操作數(shù),最少操

    2024年02月09日
    瀏覽(23)
  • 解決:STM32CubeMX生成MDK代碼提示項(xiàng)目有問(wèn)題(...have a problem)

    解決:STM32CubeMX生成MDK代碼提示項(xiàng)目有問(wèn)題(...have a problem)

    通過(guò)STM32CubeMX進(jìn)行STM32項(xiàng)目創(chuàng)建過(guò)程中,在生成MDK代碼時(shí)提示\\\"The Code is successfully generated under C:/TEST/LED but MDK-ARM V5 Project genera have a problem\\\"的解決辦法: 1、檢查項(xiàng)目名稱(chēng)是否為存在特殊字符、中文等,例如:例題1; 2、檢查項(xiàng)目創(chuàng)建路徑是否存在特殊字符、中文或空格等,例如

    2024年02月16日
    瀏覽(126)
  • 考研算法復(fù)試刷題19天:Prim算法求最小生成樹(shù) 【prim,最小生成樹(shù)】

    考研算法復(fù)試刷題19天:Prim算法求最小生成樹(shù) 【prim,最小生成樹(shù)】

    參考博客:圖解:什么是最小生成樹(shù)? - 知乎 (zhihu.com)? 總結(jié)下來(lái)的過(guò)程就是,一張圖,我們將他化為樹(shù)的形式,也就是生成樹(shù)。那么最小生成樹(shù)有是啥呢? 所謂一個(gè)?帶權(quán)圖?的最小生成樹(shù),就是原圖中邊的權(quán)值最小的生成樹(shù)?,所謂最小是指邊的權(quán)值之和小于或者等于其它

    2024年02月07日
    瀏覽(23)
  • 【算法每日一練]-圖論(保姆級(jí)教程篇7 最小生成樹(shù) ,并查集模板篇)#村村通 #最小生成樹(shù)

    【算法每日一練]-圖論(保姆級(jí)教程篇7 最小生成樹(shù) ,并查集模板篇)#村村通 #最小生成樹(shù)

    目錄 題目:村村通 并查集? 題目:最小生成樹(shù) kruskal算法 prim算法 ???????? 先引入問(wèn)題: 要在n個(gè)城市之間鋪設(shè)光纜,主要目標(biāo)是要使這 n 個(gè)城市的 任意兩個(gè)之間都可以通信 ,但鋪設(shè)光纜的費(fèi)用很高,且各個(gè)城市之間鋪設(shè)光纜的費(fèi)用不同,因此另一個(gè)目標(biāo)是要 使鋪設(shè)光

    2024年02月04日
    瀏覽(21)
  • 最小生成樹(shù)——Kruskal算法

    最小生成樹(shù)——Kruskal算法

    目錄 基本思想 實(shí)現(xiàn) 偽代碼 實(shí)際問(wèn)題求解 最小生成樹(shù) :帶權(quán)連通圖的生成樹(shù)中 邊的權(quán)值之和最小的生成樹(shù)。 最小生成樹(shù)不是唯一的。當(dāng)圖中的各邊權(quán)值互不相等時(shí),最小生成樹(shù)是唯一的; 若無(wú)向連通圖本身是一棵樹(shù)時(shí)(邊數(shù)比頂點(diǎn)數(shù)少1 ),則最小生成樹(shù)就是它本身。 最

    2023年04月26日
    瀏覽(29)
  • 最小生成樹(shù)matlab求解

    最小生成樹(shù)matlab求解

    連通所有頂點(diǎn)且總路徑最小 修建連通7個(gè)城市的鐵路網(wǎng),可修建的路線和對(duì)應(yīng)造價(jià)如圖所示,如何修建使總費(fèi)用最少? 問(wèn)題分析: 連通7個(gè)城市:生成的圖中,從任意頂點(diǎn)起步,沿著邊一定可以到達(dá)所有的其他頂點(diǎn),這種圖叫連通圖。 可修建的路線和對(duì)應(yīng)造價(jià):圖的邊,及其

    2024年02月05日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包