聯合權值題解

2021-08-27 08:41:54 字數 2151 閱讀 9915

無向連通圖 gg 有

n n

個點,n−

1' role="presentation" style="position: relative;">n−1

n−1條邊。點從

1 1

到 n' role="presentation" style="position: relative;">n

n依次編號,編號為

i i

的點的權值為 wi

' role="presentation" style="position: relative;">wiw

i,每條邊的長度均為

1 1

。圖上兩點 (u

,v)' role="presentation" style="position: relative;">(u,

v)(u

,v)的距離定義為 uu 點到 vv 點的最短距離。對於圖

g g

上的點對 (u

,v)' role="presentation" style="position: relative;">(u,

v)(u

,v),若它們的距離為

2 2

,則它們之間會產生wu

' role="presentation" style="position: relative;">wuw

u*wv

w

v​ 的聯合權值。請問圖

g g

上所有可產生聯合權值的有序點對中,聯合權值最大的是多少?所有聯合權值之和是多少?

輸入輸出格式

輸入格式:

第一行包含

1' role="presentation" style="position: relative;">1

1個整數

n n

。 接下來 n−

1' role="presentation" style="position: relative;">n−1

n−1行,每行包含

2 2

個用空格隔開的正整數u,

v' role="presentation" style="position: relative;">u,v

u,v,表示編號為

u u

和編號為

v' role="presentation" style="position: relative;">v

v的點之間有邊相連。最後 1 行,包含 n 個正整數,每兩個正整數之間用乙個空格隔開,其中第 i個整數表示圖

g g

上編號為 i 的點的權值為wi

' role="presentation" style="position: relative;">wiw

i輸出格式:

輸出共 1行,包含2 個整數,之間用乙個空格隔開,依次為圖 g 上聯合權值的最大值和所有聯合權值之和。由於所有聯合權值之和可能很大,輸出它時要對10007取餘。

輸入輸出樣例

輸入樣例#1:

5 1 2

2 3

3 4

4 5

1 5 2 3 10

輸出樣例#1:

20 74

我們來看,因為邊權是1,所以我們可列舉點從而進行計算,但這樣只有70分,這樣我們就要來想一想如何優化,我們分析可發現我們將大部分時間都浪費在找點,所以我們可維護乙個陣列,表示有多少個點與之相連,這樣在列舉點時可以減少一重迴圈,這樣就可以a了

上**

#include

using namespace std;

struct edge

}edge[1000000];

int head[300000]=,cnt=0;

void add(int a,int b)

long long w[300000]=;

int main()

for(int i=1;i<=n;i++)scanf("%lld",&w[i]);

long long sum=0,maxn=0,he,rmax,node;

for(int i=1;i<=n;i++)

}printf("%lld

%lld",maxn,(sum*2)%10007);

return

0;}

聯合權值(codevs 3728)題解

問題描述 無向連通圖 g 有 n 個點,n 1 條邊。點從 1 到 n 依次編號,編號為 i 的點的權值為wi 每條邊的長度均為 1。圖上兩點 u,v 的距離定義為 u 點到 v 點的最短距離。對於圖 g 上的點對 u,v 若它們的距離為 2,則它們之間會產生wu wv 的聯合權值。請問圖 g 上所...

NOIP2014 聯合權值 題解

題目大意 有一棵樹,求距離為2的點權的乘積的和以及最大值。思路 列舉每乙個點,則與其相鄰的點互為距離為2的點。該部分的最大值為點權最大的兩個點的積,和為點的權值和的平方減去每個點的平方,這樣每條邊都被跑了兩次,所以複雜度為o n 用鄰接表儲存要開雙倍陣列 無向 當然像cyk大神一樣直接跑邊就不用考慮...

3728 聯合權值

無向連通圖g 有n 個點,n 1 條邊。點從1 到n 依次編號,編號為 i 的點的權值為w i 每條邊的長度均為1 圖上兩點 u v 的距離定義為u 點到v 點的最短距離。對於圖g 上的點對 u,v 若它們的距離為2 則它們之間會產生wu wv 的聯合權值。請問圖g 上所有可產生聯合權值的有序點對中...