(noip2014)聯合權值

2021-09-11 19:38:49 字數 583 閱讀 2061

題目傳送門sxazr

本題可直接列舉每個點,然後列舉與它相連的兩個點,這兩個點的乘積便是乙個聯合權值;

可以記錄下每個點與它相連的點的最大值和次大值,結果就是取最大值和次大值乘積的最大;

求和的話,可以記錄下乙個點相連所有點的和s[i],sum=∑(w[j]*(s[i]-w[j])) (j是與i相連的點)列舉每個點的sum,

ans=∑sum;

**比較簡陋,囉嗦,比較容易理解哈。

#include #include using namespace std;

const int n=200001;

int n,hed[n],net[n<<1],to[n<<1],w[n],g,ma1[n],ma2[n],k[n],maxx;

long long s[n],ans,mod=10007;

void add(int x,int y)

int main()

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

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

} cout

}

NOIP2014 聯合權值

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

NOIP 2014 聯合權值

評測傳送 70分 列舉中間點,然後再兩層迴圈列舉這個點的所有鄰接點,兩兩相乘,加入和中。可能退化為n 2 100分 在70分的基礎上加乙個優化,當我們列舉了中間點,然後再列舉它的鄰接點 j 時,用sum i 表示 i 的所有鄰接點的權值的和,那麼以 i 作為中間點,j這個點對答案的貢獻為 sum i...

NOIP 2014 聯合權值

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