1)讀入給了編號並給予父子關係 (父子關係已給出) 處理:同存圖
2)將陣列轉化為乙個樹 父子關係體現在其編號上(編號的關係->父子關係)典型:線段樹,堆(lson:2*x rson: 2*x+1)
void dfs(int x)
}
3)直接搞dfs序,一邊深搜一邊編號
void find()
}
then是完整**
方法1:dfs序
由於輸入的訪問次序與dfs序相同,所以直接做一遍dfs找出lson,rson即可,無需額外儲存父子關係
#include #include #include using namespace std;
const int maxn=1005;
vectorv[maxn];
int f[maxn][maxn];
int cnt=0;
int n;
void find()
} }else
}}int main()
a[maxn];
int f[maxn][maxn];
int cnt;node k;
void dfs(int x)
}int find(int x,int cost)
return f[x][cost];
}int main()
P1270 「訪問」美術館
p1270 訪問 美術館 一開始以為只是一棵普通樹,後來才發現題目中寫了每個走廊要麼分叉為兩條走廊,要麼通向乙個展覽室,是一棵二叉樹,可以直接用陣列表示。輸入是按照dfs序給出的,可以直接按照類似於線段樹bulid來建立這棵二叉樹,其中藏畫數不為0的是葉子結點,是遞迴建樹的終點。小偷是要偷畫,最後還...
P1270 「訪問」美術館
一道樹形dp啦 其實我是做過這道題的加強版後才做的這道題 不過先由淺入深,先發這個 首先,我定義 f u i 為在第 u 個點上,給它時間為 i 是能獲取的最大價值。有乙個需要注意,如果說這是乙個展廳,設給這個點的時間為 t 那麼實際能偷畫的時間只有 t 雙倍邊權。這也導致了如果這個點是乙個分支,那...
luogu P1270 訪問 美術館
傳送門 比較奇怪的樹形揹包 首先需要處理讀入的問題 這題史詩遞迴讀入 然後遞迴讀入就不用建圖 這題特點是只有葉子有價值 所以揹包就不太有用 坑點就是這個人進去還得出來.而且不能把時間都用完 導致75 time cost 35min code 1 include2 include3 include4 ...