給乙個有根樹,有邊權,葉子節點有畫可以偷,偷畫和經過邊需要時間,給定n時間,最多可以偷多少價值的畫。
這奇怪的資料格式真是給跪了,葉子節點可以揹包,非葉子節點怎麼辦呢?暴力列舉!
#include
#include
#include
#include
#include
#include
#include
#define forn(i, n) for (int i = 0; i < (int)(n); ++i)
#define for1(i, n) for (int i = 1; i <= (int)(n); ++i)
#define pb push_back
using namespace std;
typedef
long
long ll;
const
int n=
1000+5
;struct nodetree[n]
;int cnt=0;
intnew
(int w,
int x)
int dp[
300+5]
[30+5
][600+5]
;int
build()
// cout<}
// cout<}
else
if(x==0)
return r;
}void
dfs(
int u)}}
intmain()
洛谷 3373 線段樹
傳送門 思路 關鍵在於乘與加的先後計算關係,x y k x k y k,從這裡可以看出來,把加法轉化為乘法計算,取消了 與 先後順序 pushdown時,即為乘法標記 原有資料 加法標記 長度。注意點 這個題資料範圍取long long 讀入的k也是long long,傳入函式時用long long...
洛谷 1198 線段樹
線段樹的單點更新 區間查詢,典型的求區間最大值。如下 1 include2 using namespace std 3 typedef unsigned int ui 4 typedef long long ll 5 typedef unsigned long long ull 6 define p...
洛谷1268樹的重量(樹)
樹可以用來表示物種之間的進化關係。一棵 進化樹 是乙個帶邊權的樹,其葉節點表示乙個物種,兩個葉節點之間的距離表示兩個物種的差異。現在,乙個重要的問題是,根據物種之間的距離,重構相應的 進化樹 令n 用乙個n上的矩陣m來定義樹t。其中,矩陣m滿足 對於任意的i,j,k,有m i,j m j,k m i...