P2279 HNOI2003 消防局的設立

2021-09-18 02:11:59 字數 589 閱讀 8956

本來看著像是樹狀dp,但是狀態好麻煩。所以可以用貪心。

這個思想一開始想到了,奈何**能力不夠。所以借鑑了一下洛谷上的思路。

1.用d[i]儲存深度,b[i]來代表節點值。然後這個cmp函式來排列b[i],即實現了b[i]代表第i深的節點值

2.用o[i]來儲存到這個節點最近的消防局距離。f[i]代表父節點(由於輸入a[i]小於i,所以1為根節點,構建樹)

#include#define mxn 1005

using namespace std;

int b[mxn],d[mxn],f[mxn],o[mxn];

bool cmp(int x,int y)

//貪心,在爺爺節點建立消防局

//a[i]>n;

for(int i=2;i<=n;i++)

sort(b+1,b+n+1,cmp);

int ans=0;

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

// printf("i=%d,ans=%d\n",v,ans);

}printf("%d\n",ans);

}

P2279 HNOI2003 消防局的設立

p2279 hnoi2003 消防局的設立 寫得不錯 寫得也可以 樹形動規的寫法,沒人指導,確實看不懂,無奈,找能看懂得來研究。此文做法,摘抄如下 乙個簡單的貪心,我們只要考慮2個消防局設立的距離為5時是最好的,因為利用最充分.就dfs一遍,再對根處理一下就可以了.這道題應該是sgu某道題的簡化版....

P2279 HNOI2003 消防局的設立

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...

P2279 HNOI2003 消防局的設立

之前拿dp寫過一次。炸了。但就一直爛在 了。昨天同學胡策。出到了一部分。說使用貪心做。時間複雜度是 o nk 的。其中k是半徑。然後就學習了一波。當然這道題是只考慮點支配 差不多 感覺這個貪心很妙 大體就是按照深度,處理出多少級祖先來,然後貪心。include include include inc...