春節十二響

2022-05-02 06:06:08 字數 676 閱讀 6750

自己的思路:

將樹上所有的鏈存到好幾個陣列裡,每次取出每個陣列的最大值比較,將最大的計入答案。其實很接近正解了。

正解:將每個點的子樹合成乙個堆,啟發式合併(由小到大)。

上**吧

#include#include#include#include#define ll long long

using namespace std;

const int n = 200000+10;

int n,a[n],fa[n],tmp[n],id[n],tim;

int head[n],tot;

struct edgee[n];

priority_queueq[n];

inline int read()

while(isdigit(ch))

return (f==1)?x:-x;

}void add(int x,int y)

void dfs(int x)

for(int i=1;i<=m;i++)

q[id[x]].push(tmp[i]);

} q[id[x]].push(a[x]);

}int main()

春節十二響

題目背景 清明時節雨紛紛,路上行人欲斷魂。2075 年的清明沒有春雨。在漫天飛雪的籠罩下,穿行在冰原間的,只有載著人類微薄希望的雪地車。遙遙 4.22 光年的征途,對於地球這孤獨的旅人而言,恐怕也是無比寂寞的吧。題目描述 距離蘇拉威西只有一百公里了,車內的空氣比窗外更加冰冷。四雙眼睛緊盯著艾莉芬面前...

春節十二響 十二省聯考2019

給定一顆樹,要求將其上的節點分成若干組,使得每一組的節點互相不擁有祖先 後代關係。定義每一組的值為該組節點權值最大值,求值總和最小值。硬上不是很顯然的貪心,但是資料中鏈的情況給了提示。考慮鏈的情況 對於根節點兩側的鏈,我們分別排序,然後覆蓋選取即可。這個貪心的正確性是顯然的。現在考慮完整的資料 對於...

十二省聯考2019 春節十二響

點這裡看題目。感覺自己好蠢 假如我們有兩棵樹 t 1,t 2 我們應該怎麼計算出它們合併之後的最優解呢?設最優情況下,t 1 的所有記憶體段的集合為 m 1 t 2 的集合為 m 2 我們可以知道,m 1,m 2 中所有的元素都是不能再合併的 廢話 考慮有 m 1,m 2 in m 1,m 1 m ...