將軍令題解

2022-08-26 21:57:23 字數 693 閱讀 2998

首先,每個葉子節點都要被至少乙個小隊控制,

則貪心地放置小隊,

放置之後沒被覆蓋的點跟屬於控制範圍的點無關,

又屬於新的「葉子」,繼續遞迴。

如何貪心地放置?

對於每乙個點,我們求出離它最遠的沒被覆蓋的點,

若距離超過k-它離最近的小隊的距離,

則必定放置小隊,

並把離它距離小於等於k的父親標記,值為離它距離。

#includeusing namespace std;

const int n=200006;

int n,t,t1,t2,k,cnt=0,ans=0,f[n],dis[n],head[n];

//f[x]:x的父親,dis[x]:x到最近的小隊的距離

struct edgee[n<<1];

inline void add(int u,int v)

inline int read()

while(ch>='0'&&ch<='9') t=(t<<3)+(t<<1)+(ch-48),ch=getchar();

return f*t;

}int dfs(int x)

}if(dis[x]&&dis[x]>=maxa) maxa=0;

if(x==1&&dis[x]return maxa;

}int main()

題解 將軍令

這道題我看到有人打了樹形 dp 我當時想,每種情況都要討論,20 的dp方程,那位神仙是給某主播打賞了10萬後氣急敗壞了嗎?有的時候,可以貪心的別莽著打dp啊 有道簡化版 p2279 hnoi2003 消防局的設立 樹形dp or 貪心 luogu傳送門 p3942 將軍令 又想起了四月。如果不是省...

Luogu P3942 將軍令 題解報告

題目傳送門 題目大意 這個題面有點中二啊hhhh 總結一下就是給出了一棵 n 個節點的樹,然後在乙個節點駐紮小隊就可以控制樹上所有距離它不超過 k 的節點,求最少需要駐紮多少個小隊就可以控制整棵樹。思路分析 首先有乙個非常顯然的結論,如果把小隊駐紮在葉子節點顯然是比駐紮在非葉子節點要不優的,所以我們...

題解 Luogu P3942 將軍令 貪心

f x 0 表示最近控制驛站的距離 f x 1 表示最遠不能控制的驛站距離 當f x 0 f x 1 k是說明能被控制,但沒有貢獻 當f x 1 k時,x必須被控制,這時已經到達能控制點的最遠距離,如果再向上,x就無法被控制 正確性 如果x可以向上移動,並且仍然能控制x移動前能控制的點,就把x向上移...