L2-043 龍龍送外賣(dfs)

龍龍是“飽了呀”外賣軟件的注冊騎手,負責送帕特小區的外賣。帕特小區的構造非常特別,都是雙向道路且沒有構成環 —— 你可以簡單地認為小區的路構成了一棵樹,根結點是外賣站,樹上的結點就是要送餐的地址。

每到中午 12 點,帕特小區就進入了點餐高峰。一開始,只有一兩個地方點外賣,龍龍簡單就送好了;但隨著大數據的分析,龍龍被派了更多的單子,也就送得越來越累……

看著一大堆訂單,龍龍想知道,從外賣站出發,訪問所有點了外賣的地方至少一次(這樣才能把外賣送到)所需的最短路程的距離到底是多少?每次新增一個點外賣的地址,他就想估算一遍整體工作量,這樣他就可以搞明白新增一個地址給他帶來了多少負擔。

輸入格式:

輸入第一行是兩個數 N 和 M (2≤N≤105, 1≤M≤105),分別對應樹上節點的個數(包括外賣站),以及新增的送餐地址的個數。

接下來首先是一行 N 個數,第 i 個數表示第 i 個點的雙親節點的編號。節點編號從 1 到 N,外賣站的雙親編號定義為 ?1。

接下來有 M 行,每行給出一個新增的送餐地點的編號 Xi?。保證送餐地點中不會有外賣站,但地點有可能會重復。

為了方便計算,我們可以假設龍龍一開始一個地址的外賣都不用送,兩個相鄰的地點之間的路徑長度統一設為 1,且從外賣站出發可以訪問到所有地點。

注意:所有送餐地址可以按任意順序訪問,且完成送餐后無需返回外賣站

輸出格式:

對于每個新增的地點,在一行內輸出題目需要求的最短路程的距離。

輸入樣例:

7 4
-1 1 1 1 2 2 3
5
6
2
4

輸出樣例:

2
4
4
6
#include<bits/stdc++.h>
using namespace std;
vector<int>tree;
vector<int>children[100005];
int path[100005]={0};
bool vis[100005]={false};
void dfs(int root){queue<pair<int,int>>pq;pq.push({root,path[root]});while(!pq.empty()){int pa=pq.front().first;int deep=pq.front().second;pq.pop();path[pa]=deep;for(int u:children[pa]){pq.push({u,deep+1});}}
}
void solve(){int n,m;cin>>n>>m;tree.resize(n+1);int root;for(int i=1;i<=n;i++){cin>>tree[i];if(tree[i]==-1){root=i;}else{children[tree[i]].push_back(i);}}dfs(root);set<int>address;int total=0;int maxn=0;for(int i=0;i<m;i++){int q;cin>>q;maxn=max(path[q],maxn);while(q!=root&&!vis[q]){vis[q]=true;total++;q=tree[q];}cout<<total*2-maxn<<endl;}
}
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);solve();return 0;
}

?

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

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

相關文章

如何基于PyTorch做二次開發

基于PyTorch進行二次開發以實現可視化工程&#xff0c;可以從以下幾個方面入手&#xff1a;模型結構可視化、訓練過程監控、特征可視化等。以下是一些推薦的GitHub項目&#xff0c;這些項目可以幫助你快速搭建一個可視化的工程環境&#xff1a; ### 1. **PyTorch CNN Visualiz…

本地大模型編程實戰(26)用langgraph實現基于SQL數據構建的問答系統(5)

本文將將擴展上一篇文章完成的 langgraph 鏈&#xff0c;繼續使用基于 langgraph 鏈 &#xff0c;對結構化數據庫 SQlite 進行查詢的方法。該系統建立以后&#xff0c;我們不需要掌握專業的 SQL 技能&#xff0c;可以用自然語言詢問有關數據庫中數據的問題并返回答案。主要完善…

【Kubernetes】污點和容忍

一、概述 在 Kubernetes&#xff08;k8s&#xff09;中&#xff0c;污點&#xff08;Taints&#xff09; 是定義在節點上的一種機制&#xff0c;用于拒絕某些 Pod 調度到該節點&#xff0c;除非這些 Pod 具有對應的容忍度&#xff08;Tolerations&#xff09;。污點可以用來控…

【大模型?知識圖譜】大模型結合醫療知識圖譜:解鎖智能輔助診療系統新范式

【大模型?知識圖譜】大模型結合醫療知識圖譜:解鎖智能輔助診療系統新范式 大模型結合醫療知識圖譜:解鎖智能輔助診療系統新范式引言一、系統架構1.1 系統架構圖1.2 架構模塊說明1.2.1 用戶輸入1.2.2 大模型(語義理解與意圖識別)1.2.3 Agent(問題解析與任務分配)1.2.4 問…

FASIONAD:自適應反饋的類人自動駕駛中快速和慢速思維融合系統

24年11月來自清華、早稻田大學、明尼蘇達大學、多倫多大學、廈門大學馬來西亞分校、電子科大&#xff08;成都&#xff09;、智平方科技和河南潤泰數字科技的論文“FASIONAD : FAst and Slow FusION Thinking Systems for Human-Like Autonomous Driving with Adaptive Feedbac…

【免費】YOLO[笑容]目標檢測全過程(yolo環境配置+labelimg數據集標注+目標檢測訓練測試)

一、yolo環境配置 這篇帖子是我試過的&#xff0c;非常全&#xff0c;很詳細【cudaanacondapytorchyolo(ultralytics)】 yolo環境配置 二、labelimg數據集標注 可以參考下面的帖子&#xff0c;不過可能會出現閃退的問題&#xff0c;安裝我的流程來吧 2.1 labelimg安裝 label…

Linux系統軟件管理

systemctl 控制軟件啟動和關閉 Linux系統很多軟件支持使用systemctl命令控制&#xff1a;啟動&#xff0c;停止&#xff0c;開啟自啟。 能被systemctl管理的軟件&#xff0c;一般被稱為&#xff1a;服務。 語法&#xff1a;systemctl start|stop|status|enable|disable 服務名…

CAN總線通信協議學習1——物理層

首先來看看CAN是怎么產生的&#xff1a;簡單理解&#xff0c;CAN就是一種“擁有特別連接方式”的數據傳輸的總線&#xff0c;其有特定的一些規則。 &#xff08;注&#xff1a;資料及圖片來源于知乎博主TOMOCAT。&#xff09; CAN總線的結構 查閱參考文獻&#xff0c;OSI標準…

偏移量是什么

在將二維網格映射到一維數組時&#xff0c;偏移量是指在一維數組中 某一行的第一個元素相對于數組起始位置的位置差。對于一個 3 行 4 列的網格&#xff0c;我們使用公式 cur_pos x * n y 來計算二維位置 (x, y) 在一維數組中的索引。 當 x 0 &#xff08;第一行&#xff…

【Mac電腦本地部署Deepseek-r1:詳細教程與Openwebui配置指南】

文章目錄 前言電腦配置&#xff1a;安裝的Deepseek版本&#xff1a;使用的UI框架&#xff1a;體驗效果展示&#xff1a;本地部署體驗總結 部署過程Ollama部署拉取模型運行模型Openwebui部署運行Ollama服務在Openwebui中配置ollama的服務 后話 前言 deepseek最近火的一塌糊涂&a…

給小白的oracle優化工具,了解一下

有時懶得分析或語句太長&#xff0c;可以嘗試用oracle的dbms_sqldiag包進行sql優化&#xff0c; --How To Use DBMS_SQLDIAG To Diagnose Query Performance Issues (Doc ID 1386802.1) --診斷SQL 性能 SET ECHO ON SET LINESIZE 132 SET PAGESIZE 999 SET LONG 999999 SET SER…

YOLO11改進加入ResNet網絡

文章目錄 1.改進目的2.demo引入2.1代碼2.2 結果展示2.3 BottleNeck詳解 1.改進目的 原始YOLO11模型訓練好以后&#xff0c;檢測結果mAP結果很低&#xff0c;視頻檢測結果很差&#xff0c;于是想到改進網絡&#xff0c;這里介紹改進主干網絡。 2.demo引入 2.1代碼 # File: 2…

Spring MVC流程

SpringMVC啟動流程 啟動流程父子容器請求處理MultipartFile 解析參數傳遞返回值處理HandlerInterceptor 啟動流程 啟動Tomcat解析web.xml創建DispatcherServlet調用DIspatcherServlet的init方法 4.1 創建Spring容器 4.2 發布ContextRefresheEvent 4.3 在OnRefreshed方法中觸發…

【大數據】ClickHouse常見的錯誤及解決方式

ClickHouse 是一款高性能的列式數據庫&#xff0c;但在使用過程中難免會遇到一些錯誤。本文將介紹一些 ClickHouse 常見的錯誤及其解決方式&#xff0c;幫助您更好地使用 ClickHouse。 1、錯誤&#xff1a;DB::Exception 錯誤信息 DB::Exception:Table engine Distributed d…

物理競賽中的線性代數

線性代數 1 行列式 1.1 n n n 階行列式 定義 1.1.1&#xff1a;稱以下的式子為一個 n n n 階行列式&#xff1a; ∣ A ∣ ∣ a 11 a 12 ? a 1 n a 21 a 22 ? a 2 n ? ? ? ? a n 1 a n 2 ? a n n ∣ \begin{vmatrix}\mathbf A\end{vmatrix} \begin{vmatrix} a_{11…

IP-----動態路由OSPF

這只是IP的其中一塊內容&#xff0c;IP還有更多內容可以查看IP專欄&#xff0c;前一章內容為GRE和MGRE &#xff0c;可通過以下路徑查看IP-------GRE和MGRE-CSDN博客,歡迎指正 注意&#xff01;&#xff01;&#xff01;本部分內容較多所以分成了兩部分在下一章 5.動態路由OS…

數字內容體驗未來趨勢:交互升級與用戶深耕

智能技術重塑內容交互 隨著數字內容體驗進入深度智能化階段&#xff0c;AI驅動的內容生成與智能推薦算法正在重構用戶與信息的交互范式。基于自然語言處理技術的內容創作工具&#xff0c;已實現從文本自動生成到多模態內容適配的跨越&#xff0c;企業能夠以分鐘級速度產出符合…

2025年2月21日優雅草內測分發站全新升級-測試運營-優雅草內測分發站新用戶提供免費100下載點-2月28日正式運營并且提供私有化部署版本

2025年2月21日優雅草內測分發站全新升級-測試運營-優雅草內測分發站新用戶提供免費100下載點-2月28日正式運營并且提供私有化部署版本 說明 優雅草內測分發站新用戶提供免費100下載點&#xff0c;優雅草分運營站和demo測試站 運營站&#xff1a;www.youyacao.cn 提供免費100…

動態內存池設計與環形緩沖區實現詳解

一、動態內存池設計 在嵌入式系統中&#xff0c;頻繁使用 malloc 和 free 會導致內存碎片和性能問題。動態內存池通過預分配固定大小的內存塊&#xff0c;并統一管理分配與釋放&#xff0c;顯著提高內存使用效率和實時性。 1. 核心設計思路 預分配內存&#xff1a;將內存劃分…

015--基于STM32F103ZET6的智能風扇設計

1.實物視頻演示 智能風扇演示視頻 2.程序代碼講解 STM32F103ZET6智能風扇_嗶哩嗶哩_bilibili 3源代碼獲取 https://download.csdn.net/download/weixin_41011452/90440545