cf375D. Tree and Queries(莫隊)

題意

題目鏈接

給出一棵 n 個結點的樹,每個結點有一個顏色 c i 。 詢問 q 次,每次詢問以 v 結點為根的子樹中,出現次數 ≥k 的顏色有多少種。樹的根節點是1。

Sol

想到了主席樹和啟發式合并。。很顯然都不能做。

標算是dfs序上暴力莫隊。。甘拜下風

具體實現的時候可以直接用\(tim[i]\)表示第\(i\)個顏色的出現次數,\(ans[i]\)表示出現次數多于\(i\)的顏色的種類

由于左右端點移動的時候只會對一個\(ans[i]\)產生影響,所以修改是\(O(1)\)

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 10;
inline int read() {char c = getchar(); int x = 0, f = 1;while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f;
}
int N, M, dfn[MAXN], rev[MAXN], tot, block, bel[MAXN], siz[MAXN], col[MAXN], tims[MAXN], Ans[MAXN], out[MAXN];
vector<int> v[MAXN];
struct Query{int id, l, r, k;bool operator < (const Query &rhs) const {return bel[l] == bel[rhs.l] ? r < rhs.r : bel[l] < bel[rhs.l];}
}Q[MAXN];
void dfs(int x, int fa) {dfn[x] = ++tot; rev[tot] = x; siz[x] = 1;for(int i = 0, to; i < v[x].size(); i++) {if((to = v[x][i]) == fa) continue;dfs(to, x); siz[x] += siz[to];}
}
void add(int x, int opt) {if(opt == 1) Ans[++tims[x]]++;else Ans[tims[x]--]--;
}
void solve() {  sort(Q + 1, Q + M + 1);int l = 1, r = 0;for(int i = 1; i <= M; i++) {while(r > Q[i].r) add(col[rev[r--]], -1);while(r < Q[i].r) add(col[rev[++r]], 1);while(l < Q[i].l) add(col[rev[l++]], -1);while(l > Q[i].l) add(col[rev[--l]], 1);out[Q[i].id] = Ans[Q[i].k];///printf("%d\n", out[Q[i].id]);}for(int i = 1; i <= M; i++) printf("%d\n", out[i]);}
int main() {N = read(); M = read(); block = sqrt(N);for(int i = 1; i <= N; i++) col[i] = read(), bel[i] = (i - 1) / block + 1;for(int i = 1; i <= N - 1; i++) {int x = read(), y = read();v[x].push_back(y); v[y].push_back(x);}   dfs(1, 0);for(int i = 1; i <= M; i++) {Q[i].id = i; int x = read(); Q[i].k = read();Q[i].l = dfn[x];Q[i].r = dfn[x] + siz[x] -1;}solve();return 0;
}
/*
*/

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

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

相關文章

it項目管理 pdf_IT項目管理的控制經驗

據調查&#xff0c;只有37%的IT項目在計劃時間內完成&#xff0c;42%的在預算內完成。IT項目成功率不高的根源在于IT項目管理是項系統工程&#xff0c;不僅需要項目經理個人具備一定的組織、決策、技術、業務、溝通能力&#xff0c;更需要運用多種手段對項目的時間、質量、成本…

安裝hadoop集群---resourcemanager和NameNode同一臺機器上

1、復制虛擬機&#xff0c;搞了5臺。 1&#xff1a;namenode&#xff0c;resourcemanager 2&#xff1a;secondardNameNode 3&#xff0c;4&#xff0c;5&#xff1a;DataNode 2、修改了網卡配置&#xff0c;連接上SecureCRT ---------root----用戶---------- 3、date查看了…

ps把圖摳到html里,ps摳圖教程:手把手教你如何用ps摳頭發絲

PS摳圖是現在常見的摳圖方法之一&#xff0c;色塊分明的圖是很好摳的&#xff0c;但是如果是需要摳出來的物體是細微凌亂的呢&#xff1f;就像頭發絲。PS如何摳頭發絲才能毫無P圖痕跡&#xff1f;如何摳頭發絲一類的圖像呢&#xff0c;本文介紹的是使用通道結合其余一些命令完成…

臻識科技用全智能相機,把智慧城市的交通/安防/工業制造做到極致

儼然&#xff0c;智慧城市已經是一個技術密集、資本密集、巨頭密集、關注度密集的大熱門領域。 從技術層面來看&#xff0c;智慧城市對當下熱門技術進行了綜合&#xff1a;Cloud、Big Data、AI、AR/VR、5G、IoT、Quantum Computing、Edge Computing、 Block Chain等&#xff0…

熱式氣體質量流量計檢定規程_寧夏熱式氣體質量流量計價位,玻璃管液位計怎么樣...

金湖中原儀表有限公司為您詳細解讀eJxKfc寧夏熱式氣體質量流量計價位的相關知識與詳情&#xff0c;氣體流量計是計量氣體流量的儀表。安拆正在管路中記載流過的氣體量。能夠丈量煤氣&#xff0c;空氣&#xff0c;氮氣&#xff0c;乙炔&#xff0c;&#xff0c;氫氣&#xff0c;…

自己從零安裝hadoop-HA集群

總體步驟 1、分配機器&#xff0c;各安裝什么軟件 2、每個節點設置時間一致&#xff0c;設置開機自動校驗時間。 3、每個節點修改主機名。 4、每個節點配置hosts。 5、每個節點關閉防火墻。 6、上傳JDK&#xff0c;配置JDK 7、創建hadoop用戶。 8、給hadoop用戶配置root…

高校學計算機研究生錄取分數排名,四川大學計算機學院2018年碩士研究生招生擬錄取名單及成績公示...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓四川大學計算機學院2018年碩士研究生招生擬錄取名單公示(全日制)姓名 擬錄取專業 總成績 初試成績 復試成績 備注白迪 計算機技術 75.3 353 160白婉玉 計算機技術 79.35 369 169.8曾春明 計算機技術 74.7 350 158.8陳澄 計算機技術…

藍牙基礎知識進階——Physical channel

藍牙基礎知識進階——Physical channel二、物理通道物理通道是piconet區分的標準&#xff0c;它是藍牙系統結構層次中的最底層了。Q1&#xff1a;物理通道有哪些類型物理通道通常可以分為四種類型&#xff1a;1、basicpiconet channel2、adaptedpiconet channel這兩種channel是…

mapreduce程序開發的一些總結

mapreduce在編程的時候&#xff0c;基本上一個固化的模式&#xff0c;沒有太多可靈活改變的地方&#xff0c;除了以下幾處&#xff1a; 1、輸入數據接口&#xff1a;InputFormat ---> FileInputFormat(文件類型數據讀取的通用抽象類) DBInputFormat &#xff08;數據庫數據讀…

深度學習數據驅動_利用深度學習實現手繪數據可視化的生成

前一段時間&#xff0c;我開發了Sketchify&#xff0c; 該工具可以把任何以SVG為渲染技術的可視化轉化為手繪風格。&#xff08;參考手繪風格的數據可視化實現 Sketchify&#xff09;那么問題來了&#xff0c;很多的chart是以Canvas為渲染技術的&#xff0c;那要怎么辦&#xf…

遠程計算機無法操作,win7系統的QQ遠程協助無法控制計算機的問題的解決方法

在使用win7系統的計算機工作和學習過程中&#xff0c;可能會發生win7系統的QQ遠程協助無法控制計算機的情況. 如何處理win7系統的QQ遠程控制無法控制計算機的問題&#xff1f;對于計算機級別的用戶&#xff0c;如果win7系統qq遠程協助無法控制計算機&#xff0c;通常不知道該怎…

java應用中的日志介紹

日志在應用程序中是非常非常重要的&#xff0c;好的日志信息能有助于我們在程序出現 BUG 時能快速進行定位&#xff0c;并能找出其中的原因。 但是&#xff0c;很多介紹 AOP 的地方都采用日志來作為介紹&#xff0c;實際上日志要采用切面的話是極其不科學的&#xff01;對于日志…

微軟全新Chromium版Edge瀏覽器下載

下載地址&#xff1a; https://www.microsoft.com/en-us/edge

企業網站 源碼 服務郵箱:_后來才知道:溫州騰訊企業郵箱定制服務

后來才知道&#xff1a;溫州騰訊企業郵箱定制服務 qnmsptdb后來才知道&#xff1a;溫州騰訊企業郵箱定制服務 軟文推廣得到大家的轉發之后&#xff0c;那么軟文的經濟價值也會隨之而來。內容更新質量言外之意&#xff0c;如果你長期更新低質量內容&#xff0c;是不可取的&#…

圣三一學院計算機專業,360教育集團:愛爾蘭都柏林大學圣三一學院計算機專業...

應用&#xff0c;新產品設計。網絡和分布系統的安全和管理課程介紹計算機基層和網絡安全&#xff0c;研究網絡管理的方法和高端信息服務的管理。這六個部分內容的學習包括每周大概20小時的溝通時間&#xff0c;包括講座、輔導、研討會、試驗等。絕大部分課程要求學生完成其他課…

JavaScript的檢測及其數據類型

一、JavaScript有幾種類型的值&#xff1f;Javascript有兩種數據類型&#xff0c;分別是基本數據類型和引用數據類型。其中基本數據類型包括Undefined、Null、Boolean、Number、String、Symbol (ES6新增&#xff0c;表示獨一無二的值)&#xff0c;而引用數據類型統稱為Object對…

我是Leader,我被降職成了普通員工,HR說:公司要梯隊年輕化

“BAT也不是完美的避風港哇~”這是老劉說的&#xff0c;老劉是BAT某家的一個Leader&#xff0c;職級約類似T7(T族一般是技術族&#xff0c;管理是M族)&#xff0c;在BAT某家呆了11年&#xff0c;但是在整個互聯網行業推崇&#xff0c;梯隊年輕化的氛圍時&#xff0c;老劉所在的…

in最多可以放多少?_汽車最多可以停放多少天不開?維修師傅:盡可能別超過這個時間...

在當下&#xff0c;買車似乎已經成為了一種消費潮流&#xff0c;其中不乏一些本身用車需求不明顯但也隨大流買車的人&#xff0c;結果車買回來之后最初的新鮮勁一過就放在那里不怎么用了。當然也有部分車主是因為自己的工作修需要經常需要在外出差&#xff0c;那么就算想天天開…

計算機電源風扇安裝方法,機箱風扇怎么裝 電腦機箱風扇電源線接法

夏天天氣炎熱&#xff0c;電腦機箱內溫度也較高&#xff0c;溫度過高會影響電腦性能出現死機等問題&#xff0c;甚至影響硬件壽命。所以給機箱裝風扇來散熱是非常重要的。那么&#xff0c;機箱風扇怎么裝合理呢?機箱風扇的電源線怎么接呢?下面分享一下機箱風...夏天天氣炎熱&…

使用微服務失敗的12個原因

在過去的幾年中&#xff0c;我已經對處于數字化轉型過程中的多個產品團隊進行了架構審查。大多數團隊都在按照微服務架構構建產品。他們有使用基于微服務的體系結構的所有正確意圖-更快的開發&#xff0c;更好的可伸縮性&#xff0c;更小的獨立團隊&#xff0c;獨立的部署&…