日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Luogu 1351] NOIP2014 联合权值

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Luogu 1351] NOIP2014 联合权值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[Luogu 1351] NOIP2014 聯合權值


存圖,對于每一個點 \(u\),遍歷它的所有鄰接點。以 \(u\) 為中轉點的點對中,\((x,y)\) 的聯合權值 \(w_x \cdot w_y\) 最大,當且僅當 \(x\)\(y\) 的點權在 \(u\) 的所有鄰接點中是前兩大的。

成功嘗試內嵌 HTML 控制背景色,開心。

每遍歷一個點 \(v\),它對聯合權值之和 \(\mathrm{sum}\) 的貢獻,等于其點權 \(w_v\) 乘目前已遍歷點的點權和 \(\mathrm{NodeSum}\) 再乘 \(2\),即 \(\mathrm{sum} += 2w_v \cdot \mathrm{NodeSum}\)。(取模省略,代碼中體現)

然后一邊求 \(u\) 的鄰接點中的最大點權 \(\mathrm{max1}\) 和次大點權 \(\mathrm{max2}\),一邊更新 \(\mathrm{NodeSum}\)(教練跟我說更新這個的過程叫什么前序和優化)。

\(u\) 的鄰接點遍歷完畢后,\(\mathrm{sum}\) 也更新完畢了。至于最大聯合權值 \(\mathrm{ans}\),比較當前 \(\mathrm{ans}\) 與此次遍歷求出的 \(\mathrm{max1} \cdot \mathrm{max2}\),更新最大值即可。

最終輸出 \(\mathrm{ans}\)\(\mathrm{sum}\) 即可。

#include <algorithm> #include <cstdio> using std::max; const int MAXN=2000010,P=10007; int n,ans,sum,w[MAXN]; struct Edge {int to;Edge *next;Edge(int to,Edge* next):to(to),next(next){}~Edge(void){if(next!=nullptr)delete next;} }*head[MAXN]; void Initialize(void) {for(int i=1;i<=n;++i)head[i]=nullptr; } void AddEdges(int u,int v) {head[u]=new Edge(v,head[u]);head[v]=new Edge(u,head[v]); } void Solve(int u) {int NodeSum=0,max1=0,max2=0;for(Edge *i=head[u];i!=nullptr;i=i->next){int v=i->to;sum=(sum+(NodeSum*w[v]<<1))%P;if(max1<w[v]){max2=max1;max1=w[v];}elsemax2=max(max2,w[v]);NodeSum=(NodeSum+w[v])%P;}ans=max(ans,max1*max2); } void Destroy(void) {for(int i=1;i<=n;++i)delete head[i]; } int main(int argc,char** argv) {scanf("%d",&n);for(int i=1,u,v;i<n;++i){scanf("%d %d",&u,&v);AddEdges(u,v);}for(int i=1;i<=n;++i)scanf("%d",&w[i]);for(int i=1;i<=n;++i)Solve(i);printf("%d %d\n",ans,sum);return 0; }

謝謝閱讀。

轉載于:https://www.cnblogs.com/Capella/p/9135482.html

總結

以上是生活随笔為你收集整理的[Luogu 1351] NOIP2014 联合权值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。