NOIp提高組2014 聯合權值 dp 貪心

2021-09-29 05:15:56 字數 969 閱讀 8647

題解:本題主要考查dp/貪心。

簡要題意:一棵樹,編號為i

ii的點的權值為w

iw_i

wi​​,每條邊的長度均為1

11。對於圖g

gg上的點對(u,

v)

(u,v)

(u,v

),若它們的距離為2

22,則它們之間會產生wv×

wu

w_v \times w_u

wv​×wu

​的聯合權值。求最大的聯合權值和聯合權值總和。

1.dp/貪心:其實本題換一種思想就很簡單,因為距離為2

22的點一定有乙個中間點,所以列舉每乙個中間點,取任意兩個聯通的點,找到最大值和次大值,相乘就可以得到最大聯合權值。將所有的值加一下,注意因為兩點可以顛倒位置,所以再乘2,輸出就可以了。注意聯合權值和要取模,最大的聯合權值不能取!!!

!!!!!

!**如下:

#include#includeusing namespace std;

int mod=10007;

struct e

e[666666];

int h[666666],a[666666];

int n,p,max1,max2,maxn,ans,sum;

void add(int start,int to)

int main()

for(int i=1;i<=n;i++)cin>>a[i];

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

else if(a[k]>max2)max2=a[k];

ans=(ans+sum*a[k])%mod;

sum=(sum+a[k])%mod;

} maxn=max(maxn,max1*max2);

} ans=(ans*2)%mod;

cout

}

NOIP2014提高組 聯合權值

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

NOIP提高組2014 聯合權值 解題報告

lgoj p1351 聯合權值 一看到我們就要反應出來 g是一顆樹。兩個點的距離為2,就能產生聯合權值?那我列舉中間點不就好了2333 乙個中間點的最大聯合權值就是它所連的點中權值最大的兩個點 如果它所連只有乙個點,自然不產生權值 考慮它的所有的聯合權值之和怎麼算 第k kk個點為中間點的所有聯合權...

NOIP2014 聯合權值

鄰接表儲存樹。列舉每個節點,使之作為中點,先計算出與其相連的所有節點的權值總和l,與其相連的所有節點在該節點處形成的權值 l w w。如果沒有l,直接列舉以此節點為中點的節點對則只能過60 的資料。include include include include include include inc...