洛谷比賽 U5442 買 最長鏈

2022-02-13 05:05:21 字數 1482 閱讀 7488

u5442 買

題目提供者bqsgwys

標籤樹形結構 樹的遍歷 洛谷原創

題目背景

小e是個可愛的電路編碼員。

題目描述

一天小e又要準備做電路了,他準備了乙個電路板,上面有很多個電路元器件要安裝,於是他跑到了村口某電子城去買。小e詳細檢視了某電子城的地圖,發現自己要去地下一層,共有n個攤鋪,任意兩個攤鋪之間由道路直接或間接相連,一共n-1條道路,道路是雙向的。小e一開始處於1號攤鋪的位置,由於電子城裡很擠,他想走的盡量少。

輸入輸出格式

輸入格式:

第一行乙個整數n,代表攤鋪的數目。

接下來n-1行,每行三個整數s, t, w,表示有一條從s號鋪到t號鋪的雙向道路,長度為w。s和t的編號從1開始。

輸出格式:

乙個整數,代表對於每組資料能夠訪問每個攤鋪至少一次的方案的最小行動長度。

輸入輸出樣例

輸入樣例#1:

3 1 2 3

1 3 3

輸出樣例#1:

9 說明

1≤n≤50000,1≤w≤1000

/*

這題可以證明是求邊權之和*2-最長鏈.

bfs從根的左樹和右樹分別跑最長鏈取大.

*/#include

#include

#include

#include

#define maxn 50001

using

namespace

std;

int head[maxn],n,m,cut,ans,maxans,ans1,ans2,maxt,dis[maxn],tot,fa[maxn],tot1,tot2;

struct datae[maxn*2];

bool b[maxn];

int read1()

while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();

return x*f;

}void add(int u,int v,int z)

void dfs(int u,int f)

tot+=e[i].x;

dfs(v,u);}}

}void spfa(int s)

if(!b[v]) b[v]=true,q.push(v);}}

}}int main()

dfs(1,1);

spfa(tot1);

ans+=ans1;

maxans=max(maxans,ans);

ans=0;spfa(tot2);ans+=ans2;

maxans=max(maxans,ans);

printf("%d",2*tot-maxans);

return

0;}

洛谷U32670 小凱的數字 比賽

noip2018 原創模擬題t1 noip day1 t1 or day 2 t1 難度 是否發現與noip2017 day1 t1 有異曲同工之妙 小凱有一天突發奇想,寫下了一串數字 l l 1 l 2 r 1 rl l 1 l 2 r 1 r 例如 l 2,r 5時,數字為 23452345 l...

洛谷 比賽題解

這套題的題目質量很高,寫一發題解。t1 cjwssb最近在物理學科上遇到了難題,他不會計算乙個電路中的總電阻,現在他找到了你,希望你能幫助他。這個電路有如下限定 1 電路只由導線以及電阻為一歐的電阻組成 2 保證電路從左到右連線,即每個電阻或導線的兩個連線點xy保證x 我們可以用dfs求解,這個電路...

洛谷比賽日記

好不容易參箇賽才做幾個小時 只做了前4題,後面5題直接空著其實只是刷刷水題 工廠,模擬題 一開始zz想了半天怎麼貪心,差點去寫搜尋,最後突然發現只能按序放 秒之 一開始沒注意規模wa了,改了long long就a了 不知道為什麼有人t掉,無法理解 1 include 2 intmain 317 an...