洛谷 P1351 [NOIP 2014 提高組] 聯合權值(樹)

題目描述

無向連通圖?G?有?n?個點,n?1?條邊。點從?1?到?n?依次編號,編號為?i?的點的權值為?Wi?,每條邊的長度均為?1。圖上兩點?(u,v)?的距離定義為?u?點到?v?點的最短距離。對于圖?G?上的點對?(u,v),若它們的距離為?2,則它們之間會產生?Wv?×Wu??的聯合權值。

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

輸入格式

第一行包含?1?個整數?n。

接下來?n?1?行,每行包含?2?個用空格隔開的正整數?u,v,表示編號為?u?和編號為?v?的點之間有邊相連。

最后?1?行,包含?n?個正整數,每兩個正整數之間用一個空格隔開,其中第?i?個整數表示圖?G?上編號為?i?的點的權值為?Wi?。

輸出格式

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

輸入輸出樣例

輸入?

5  
1 2  
2 3
3 4  
4 5  
1 5 2 3 10 

輸出?

20 74

#include<bits/stdc++.h>
using namespace std;
const int mod=10007;
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
typedef pair<int,int> pii;
#define int long longconst int N=1000010;vector<int>g[N];
int n;
int a[N];
int maxn,ans;void solve()
{cin>>n;int m=n-1;for(int i=0;i<m;i++) {int a,b;cin>>a>>b;g[a].push_back(b);g[b].push_back(a);}	for(int i=1;i<=n;i++)cin>>a[i];ans=0;int maxn=0,ans=0;for(int i=1;i<=n;i++){int sum1=0,ans1=0,ans2=0;for(auto t:g[i])sum1+=a[t];if(g[i].size()==1)continue;for(auto t:g[i]){if(a[t]>ans1){ans2=ans1;ans1=a[t];}else if(a[t]>ans2){ans2=a[t];}ans=(ans+a[t]*(sum1-a[t])%mod)%mod;}maxn=max(maxn,ans1*ans2);}cout<<maxn<<' '<<ans<<endl;
}
signed main()
{ int good_luck_to_you;ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);good_luck_to_you=1;//cin>>good_luck_to_you;while(good_luck_to_you--){solve();}return 0;
}

本題是關于樹的問題,剛開始我認為只要dfs,每一次找該點的下下一個點,然后枚舉就可以了,但是我忽略了對于我剛開始就隨便找了一個當作根,所以接下來的兄弟節點就不可能有聯合權值,但是他們也是符合條件的,所以我們只需要枚舉中間那個點就可以,只需要找到該點的鄰居節點的最大值和次大值,至于聯合權值的和,該點的鄰居節點肯定要和其他鄰居節點都要乘起來加和,所以我們可以算出來該點的鄰居節點的和sum,然后遍歷鄰居節點時(假如值為x)值就為x*(sum-x)。?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73327.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

YoloV8訓練和平精英人物檢測模型

概述 和平精英人物檢測&#xff0c;可以識別游戲中所有人物角色&#xff0c;并通過繪制框將人物選中&#xff0c;訓練的模型僅僅具有識別功能&#xff0c;可以識別游戲中的視頻、圖片等文件&#xff0c;搭配Autox.js可以推理&#xff0c;實現實時繪制&#xff0c;但是對手機性…

智能汽車圖像及視頻處理方案,支持視頻實時拍攝特效能力

在智能汽車日新月異的今天&#xff0c;美攝科技作為智能汽車圖像及視頻處理領域的先行者&#xff0c;憑借其卓越的技術實力和前瞻性的設計理念&#xff0c;為全球智能汽車制造商帶來了一場視覺盛宴的革新。美攝科技推出智能汽車圖像及視頻處理方案&#xff0c;一個集高效性、智…

架構設計之自定義延遲雙刪緩存注解(下)

架構設計之自定義延遲雙刪緩存注解(下) 小薛博客官方架構設計之自定義延遲雙刪緩存注解(下)地址 為了保證Cache和ClearAndReloadCache的靈活性&#xff0c;特意加入EL表達式解析 1、Cache package com.xx.cache;import java.lang.annotation.*; import java.util.concurren…

rosbag|ROS中.bag數據包轉換為matlab中.mat數據類型

代碼見代碼 msg_dict中設置自定義消息類型 test_config中設置需要記錄的具體的值 test_config中topic_name以及message_type照搬plotjuggler打開時的參數 最后生成.mat文件在matlab中進行使用

基于動態 FOF(基金中的基金)策略的基金交易推薦系統的設計與實現思路

下面為你呈現一個基于動態 FOF&#xff08;基金中的基金&#xff09;策略的基金交易推薦系統的設計與實現思路&#xff0c;同時給出一個簡單的 Python 示例代碼。 系統設計 1. 需求分析 收集各類基金的歷史數據&#xff0c;涵蓋凈值、收益率、風險指標等。依據動態 FOF 策略…

搭建主從DNS、nfs、nginx

任務需求&#xff1a; 客戶端通過訪問 www.nihao.com 后&#xff0c;能夠通過 dns 域名解析&#xff0c;訪問到 nginx 服務中由 nfs 共享的首頁文件&#xff0c;內容為&#xff1a;Very good, you have successfully set up the system. 各個主機能夠實現時間同步&#xff0c;…

JS 對象轉數組,數組轉對象

數據格式 objMap : {apiP: 8000, sder: true, host: "1.111", wPort: "1335" }要求&#xff1a;將 objMap 轉化為 數組 const equipArray Object.keys(objMap ).map(key > {return {name: key,value: objMap [key]}打印結果 數組轉為對象 let equipAr…

vue - [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.

問題描述&#xff1a; vue項目中&#xff0c;對表單數組賦值時&#xff0c;控制臺拋出警告&#xff1a; 問題代碼&#xff1a; 問題分析&#xff1a; 1、Vue 要求每個虛擬 DOM 節點必須有唯一的 key。該警告信息通常出現在使用v-for循環的場景中&#xff0c;多個同級節點使用…

DeepSeek V3–0324 vs DeepSeek-V3, 排名最高非推理模型

最近DeepSeek V3 升級。 本文將帶您了解該模型的核心特性、基準表現,以及如何通過Hugging Face推理終端和OpenRouter平臺親身體驗。我們還將通過創意生成與邏輯分析兩大測試案例,直觀展示其卓越性能。 DeepSeek-V3-0324 2025年3月24日,深度求索(DeepSeek)AI正式發布了V3…

docker使用uv安裝依賴

官方使用 FastAPI 官方 Dockerfile 中用了兩次&#xff1a; RUN --mounttypecache,target/root/.cache/uv \--mounttypebind,sourceuv.lock,targetuv.lock \--mounttypebind,sourcepyproject.toml,targetpyproject.toml \uv sync --frozen --no-install-project # ? 第一次…

3.0 Disruptor的使用介紹(一)

Disruptor: 其官網定義為&#xff1a;“A High Performance Inter-Thread Messaging Library”&#xff0c;即&#xff1a;線程間的高性能消息框架&#xff0c;與Labview的生產者、消費者模型很相似。 其組成部分比較多&#xff0c;先介紹幾個常用的概念&#xff1a; …

在 Windows 系統下,將 FFmpeg 編譯為 .so 文件

1. 準備環境 確保你的 Windows 系統已安裝以下工具&#xff1a; Android Studio NDK&#xff08;Native Development Kit&#xff09; MSYS2&#xff08;用于提供類 Unix 環境&#xff09; FFmpeg 源碼 Git Bash&#xff08;可選&#xff0c;推薦使用&#xff09; 安裝 …

leetcode二叉樹3

404.左葉子之和 給定二叉樹的根節點 root &#xff0c;返回所有左葉子之和。 示例 1&#xff1a; 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中&#xff0c;有兩個左葉子&#xff0c;分別是 9 和 15&#xff0c;所以返回 24示例 2: 輸入: root [1] 輸…

QT網絡通信的接口與使用

文章目錄 前言1.服務端實現流程1.1步驟 1&#xff1a;創建 QTcpServer 并監聽端口1.2步驟 2&#xff1a;處理新連接請求1.3步驟 3&#xff1a;接收客戶端數據1.4步驟 4&#xff1a;處理客戶端斷開 2.客戶端實現流程2.1步驟 1&#xff1a;創建 QTcpSocket 并連接服務器2.2步驟 2…

華為OD機試2025A卷七日集訓第1期 - 按算法分類,由易到難,循序漸進,玩轉OD(Python/JS/C/C++)

目錄 一、適合人群二、本期訓練時間三、如何參加四、7日集訓第1期五、精心挑選21道高頻100分經典題目&#xff0c;作為入門。第1天、邏輯分析第2天、邏輯分析第3天、邏輯分析第4天、邏輯分析第5天、雙指針第6天、二叉樹第7天、回溯 六、集訓總結六、國內直接使用最新GPT-4.5、滿…

Qt 重入和線程安全

重入和線程安全 在整個文檔中&#xff0c;"重入"和 "線程安全 "這兩個術語被用來標記類和函數&#xff0c;以表明它們在多線程應用程序中的使用方式&#xff1a; 線程安全函數可以同時被多個線程調用&#xff0c;即使調用使用的是共享數據&#xff0c;因…

Elasticsearch:構建 AI 驅動的搜索體驗

Elasticsearch 介紹 當你開始使用 Elastic 時&#xff0c;你將使用 Elasticsearch Relevance Engine?&#xff08;ESRE&#xff09;&#xff0c;它專為 AI 搜索應用程序提供支持。借助 ESRE&#xff0c;你可以利用一整套開發者工具&#xff0c;包括 Elastic 的文本搜索、向量…

鴻蒙生態開發

鴻蒙生態開發概述 鴻蒙生態是華為基于開源鴻蒙&#xff08;OpenHarmony&#xff09;構建的分布式操作系統生態&#xff0c;旨在通過開放共享的模式連接智能終端設備、操作系統和應用服務&#xff0c;覆蓋消費電子、工業物聯網、智能家居等多個領域。以下從定義與架構、核心技術…

JVM如何處理Java中的精度轉換: 從源碼到字節碼

你好&#xff0c;我是 shengjk1&#xff0c;多年大廠經驗&#xff0c;努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注&#xff01;你會有如下收益&#xff1a; 了解大廠經驗擁有和大廠相匹配的技術等 希望看什么&#xff0c;評論或者私信告訴我&#xff01; 文章目錄 一…