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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LOJ dfs序1234

發布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LOJ dfs序1234 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DFS 序 1

題目要求
uuu節點權值+x+x+x
② 詢問uuu子樹權值和

  • uuu節點權值+x+x+x :直接加
  • uuu子樹權值和:dfs序+樹狀數組

LOJ提交代碼 DFS 序 1

DFS 序 2

題目要求
uuu節點子樹權值+x+x+x
② 詢問uuu子樹權值和

  • uuu節點子樹權值+x+x+x:dfs序+區間修改
  • 詢問uuu子樹權值和:dfs序+區間求和

區修+區改可以用2個樹狀數組或者lazy線段樹
LOJ提交代碼 DFS 序 2

DFS 序 3,樹上差分 1

題目要求
u?vu\leadsto vu?v 路徑+x+x+x
② 詢問uuu節點權值
③ 詢問uuu子樹權值和

采用自底向上的差分O(nlog?n)O(n\log n)O(nlogn)

  • u?vu\leadsto vu?v路徑+x+x+xuuuvvv分別+x+x+x而LCA以及LCA的父親節點分別?x-x?x
  • uuu節點權值:由于采用自底向上差分,不難得出原uuu節點的權值→\to uuu節點子樹權值和,采用dfs序+樹狀數組即可解決
  • uuu子樹權值和:考慮uuu子樹一個節點vvv,經過操作二求法得知對于差分后節點vvv的值再求u?vu\leadsto vu?v的路徑上的實際點權值時(子樹),都會將vvv的貢獻加上即差分樹中vvv的值對子樹uuu權值和的貢獻即valv×(depv?depu+1)=valv×depv+(depu?1)×valvval_v×(dep_v-dep_u+1)=val_v×dep_v+(dep_u-1)×val_vvalv?×(depv??depu?+1)=valv?×depv?+(depu??1)×valv?于是有uuu子樹權值和為∑v∈Treeuvalv×depv?(depu?1)×∑v∈Treeuvalv\sum_{v\in Tree_u}val_v×dep_v-(dep_u-1)×\sum_{v\in Tree_u}val_vvTreeu??valv?×depv??(depu??1)×vTreeu??valv?由此得知只需要在用一個樹狀數組維護valv×depvval_v×dep_vvalv?×depv?即可根據dfs序求出子樹valv×depvval_v×dep_vvalv?×depv?和,不難得出uuu子樹權值和問題也迎刃而解

LOJ提交代碼 DFS 序 3

DFS 序 4

題目要求
uuu節點權值+x+x+x
uuu節點子樹權值+x+x+x
③ 詢問u?vu\leadsto vu?v路徑節點權值和

對于u?vu\leadsto vu?v路徑權值和可以拆分成4條路徑:root?uroot\leadsto uroot?uroot?vroot \leadsto vroot?vroot?root \leadstoroot?LCA,root?root \leadstoroot?LCA的父親,于是只需要維護根節點到某個節點的權值和即可解決詢問
于是我們讓每個節點的權值為到根節點的權值和

  • uuu節點權值+x+x+x:此操作會導致uuu子樹中所有節點到根節點的權值和+x+x+x,因此需要讓uuu節點子樹權值都+x+x+x
  • uuu節點子樹權值+x+x+x:考慮uuu子樹中一個節點vvv,不難得知u?vu\leadsto vu?v路徑上所有點都會讓vvv節點權值+x+x+xvvv節點需要增加x×(depv?depu+1)=x×depv?x×(depu?1)x×(dep_v-dep_u+1)=x×dep_v-x×(dep_u-1)x×(depv??depu?+1)=x×depv??x×(depu??1)不難發現?x×(depu?1)-x×(dep_u-1)?x×(depu??1)可以直接子樹修改即可而x×depvx×dep_vx×depv?說明每一個xxx對當前節點權值增加x×depvx×dep_vx×depv?,只需要用一個樹狀數組記錄一下每個點最終有多少xxx即可。

LOJ提交代碼 DFS 序 4

總結

以上是生活随笔為你收集整理的LOJ dfs序1234的全部內容,希望文章能夠幫你解決所遇到的問題。

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