bzoj4753 Jsoi2016 最佳團體

2021-07-29 21:33:56 字數 1059 閱讀 7768

在萌神的指點下學會了這道題。

先01分數規劃,二分答案, ∑s

∑p≤a

ns 即

∑s−∑

p×an

s≥0

那就重新計算點權wi

=si−

mid×

pi,轉成判定性問題:能否選擇一些點,使得總點權不小於0?

傳統的泛化揹包或者多叉轉二叉是o(

n3) 的。 ac

cord

ingt

oftm

2001

(萌神),dfs之後,在dfs序的序列上搞。 fi

j 表示在df

s 序序列上做了前

i 個點,已經選擇了

j個人的最大權值和。

那麼如果這個點選fi

j−>fi

+1,j

+1如果不選fi

j−>fi

+siz

ei,j

(表示跳過子樹轉移)

對於這個點選,子樹都不選的情況,能夠通過第乙個方程包含到。

//01分數規劃+樹形dp

#include

#include

#include

#define maxn 3000

#define eps 1e-8

using namespace std;

int tid[maxn], untid[maxn], head[maxn], to[maxn], nex[maxn], tot, k, n, size[maxn];

double p[maxn], s[maxn], w[maxn], f[maxn][maxn], mid;

inline void adde(int a, int b)

void dfs(int pos)

void init()

bool dp()

return f[n+2][k]>-eps;

}int main()

printf("%.3lf\n",l);

return 0;

}

bzoj 4753 Jsoi2016 最佳團體

description jsoi資訊學代表隊一共有n名候選人,這些候選人從1到n編號。方便起見,jyy的編號是0號。每個候選人都由一位 編號比他小的候選人ri推薦。如果ri 0則說明這個候選人是jyy自己看上的。為了保證團隊的和諧,jyy需要保證,如果招募了候選人i,那麼候選人ri 也一定需要在團隊...

bzoj4753 最佳團體

jsoi 資訊學代表隊一共有 nn 名候選人,這些候選人從 11 到 nn 編號。方便起見,jyy 的編號是 00 號。每個候選人都由一位編號比他小的候選人r iri 推薦。如果 r i 0ri 0 則說明這個候選人是 jyy 自己看上的。為了保證團隊的和諧,jyy 需要保證,如果招募了候選人 ii...

bzoj 4753 最佳團體

written with stackedit.jsoi 資訊學代表隊一共有n名候選人,這些候選人從 1 到 n 編號。方便起見,jyy 的編號是 0 號。每個候選人都由一位編號比他小的候選人 r i 推薦。如果 r i 0 則說明這個候選人是 jyy 自己看上的。為了保證團隊的和諧,jyy 需要保證...