【題目大意】
給出一棵帶權樹,有兩類點,一類黑點,一類白點。
求切斷黑點和白點間路徑的最小代價。
$n \leq 10^5$
【題解】
直接最小割能過。。但是樹形dp明顯更好寫
設$f_$表示$x$這個點的子樹中,0表示沒有帶顏色的點連到這個子樹的根$x$,1表示黑點連到$x$,2表示白點連到$x$。
直接轉移即可。具體看**,挺好推得。。
# include # includeview code# include
# include
using
namespace
std;
typedef
long
long
ll;typedef unsigned
long
long
ull;
typedef
long
double
ld;const
int n = 1e5 + 10, m = 2e5 + 10
;const ll inf =1e17;
intn, d[n];
int head[n], nxt[m], to[m], w[m], tot = 0
;inline
void add(int u, int v, int
_w)
inline
void adde(int u, int v, int
_w)
ll f[n][3];
//沒有有顏色點連到根上,只有黑點連到根上,只有白點連到根上
inline void dp(int x, int fa = 0
) //
printf("x = %d, f[x][0] = %i64d, f[x][1] = %i64d, f[x][2] = %i64d\n", x, f[x][0], f[x][1], f[x][2]);
}int
main()
int t; cin >>t;
for (int i=1, x; i<=t; ++i)
cin >>t;
for (int i=1, x; i<=t; ++i)
dp(1);
cout
<< min(f[1][0], min(f[1][1], f[1][2
]));
return0;
}/*61 2 5
2 4 4
2 5 1
1 3 2
3 6 714
25 6
*/
雅禮集訓 2017 價
傳送門 乙個不太顯然的最小割做法。我們這麼連邊 源點向藥物連 infty p i 容量的邊,藥物向它對應的藥材連 infty 容量的邊,藥材向匯點連 infty 容量的邊。用源點的流量減去最小割,再負回來就可以求出答案了。怎麼理解呢?割掉一條邊表示不選其對應的藥物或藥材,我們發現最後的方案一定是完美...
雅禮集訓 2017 Day5 珠寶
題目描述 miranda 準備去市裡最有名的珠寶展覽會,展覽會有可以購買珠寶,但可惜的是只能現金支付,miranda 十分糾結究竟要帶多少的現金,假如現金帶多了,就會比較危險,假如帶少了,看到想買的右買不到。展覽中總共有 n種珠寶,每種珠寶都只有乙個,對於第 i種珠寶,它的售價為 ci 萬元,對 m...
6029 雅禮集訓 2017 Day1 市場
6029.雅禮集訓 2017 day1 市場 題目描述 從前有乙個 市場,在一位執政官到來之前都是非常繁榮的,自從他來了之後,發布了一系列奇怪的政令,導致 市場的衰落。有 n nn 個商販,從 0 n 1 0 sim n 10 n 1 編號,每個商販的商品有乙個 ai a ia i 有兩種政令 l,...