日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

洛谷 P3177 [HAOI2015]树上染色

發布時間:2024/8/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 P3177 [HAOI2015]树上染色 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

題目描述

有一棵點數為 \(N\) 的樹,樹邊有邊權。給你一個在 \(0~ N\) 之內的正整數 \(K\) ,你要在這棵樹中選擇 \(K\)個點,將其染成黑色,并將其他 的\(N-K\)個點染成白色 。 將所有點染色后,你會獲得黑點兩兩之間的距離加上白點兩兩之間的距離的和的受益。問受益最大值是多少。

題解

有點難想的dp 我果然太菜了
%%%__stdcall

\(f[i][j]\) 為以\(i\)為根的子樹, 選了染了\(j\)個黑點的最大貢獻

然后就是樹形背包。。

siz[u]為以u為根的子樹大小

for (int j = Min(K, siz[u]); j >= 0; j--)for (int k = 0; k <= Min(j, siz[v]); k++)if (f[u][j-k] >= 0) {long long val = 1ll*k*(K-k)*g[i].w + 1ll*(siz[v]-k)*(n-K+k-siz[v])*g[i].w;f[u][j] = Max(f[u][j], f[u][j-k] + f[v][k] + val);}

貢獻為子樹貢獻加上該邊的貢獻(子樹黑點個數 * 其它黑點個數 * 邊權 + 子樹白點個數 * 其它白點個數 * 邊權 )

Code

#include<bits/stdc++.h> #define LL long long #define RG register using namespace std;inline int gi() {int f = 1, s = 0;char c = getchar();while (c != '-' && (c < '0' || c > '9')) c = getchar();if (c == '-') f = -1, c = getchar();while (c >= '0' && c <= '9') s = s*10+c-'0', c = getchar();return f == 1 ? s : -s; }const int N = 2010;struct node {int to, next, w; }g[N<<1]; int last[N], gl; inline void add(int z, int x, int y) {g[++gl] = (node) {y, last[x], z};last[x] = gl;g[++gl] = (node) {x, last[y], z};last[y] = gl;return ; }int siz[N], n, K; long long f[N][N];inline void init(int u, int fa) {siz[u] = 1;for (int i = last[u]; i; i = g[i].next) {int v = g[i].to;if (v == fa) continue;init(v, u);siz[u] += siz[v];}return ; } #define Min(x, y) ((x<y)?x:y) #define Max(x, y) ((x>y)?x:y) inline void dfs(int u, int fa) {memset(f[u], 128, sizeof(f[u]));f[u][0] = f[u][1] = 0;for (int i = last[u]; i; i = g[i].next) {int v = g[i].to;if (v == fa) continue;dfs(v, u);for (int j = Min(K, siz[u]); j >= 0; j--)for (int k = 0; k <= Min(j, siz[v]); k++)if (f[u][j-k] >= 0) {long long val = 1ll*k*(K-k)*g[i].w + 1ll*(siz[v]-k)*(n-K+k-siz[v])*g[i].w;f[u][j] = Max(f[u][j], f[u][j-k] + f[v][k] + val);} }return ; }int main() {n = gi(), K = gi();for (int i = 1; i < n; i++)add(gi(), gi(), gi());init(1, 0);dfs(1, 0);printf("%lld\n", f[1][K]);return 0; }

轉載于:https://www.cnblogs.com/zzy2005/p/9873709.html

總結

以上是生活随笔為你收集整理的洛谷 P3177 [HAOI2015]树上染色的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 专干中国老太婆hd | 色妞www精品视频 | 性——交——性——乱免费的 | 亚洲男人网站 | 朝鲜一级黄色片 | 国产一区二区三区黄片 | av爽妇网| 第一章激情艳妇 | 337p亚洲欧洲色噜噜噜 | av四虎| 亚洲欧美日韩国产精品 | 中文字幕观看视频 | 中文字幕电影一区 | 精品黄网 | a级黄片毛片 | 亚洲天堂网在线视频 | 69久久久久久 | 男插女视频网站 | 少妇影院在线观看 | 黑人与日本少妇 | 51热门大瓜今日大瓜 | 漂亮人妻被黑人久久精品 | 高潮久久久 | 国产精品夜夜躁视频 | 69精品久久久久久 | 黄色精品网站 | 黄色小视频在线播放 | 91精品国产aⅴ一区二区 | av丝袜在线 | 午夜精产品一区二区在线观看的 | 国产精品蜜臀 | 毛片在线不卡 | 激情久| 亚洲香蕉久久 | 欧美少妇一区二区三区 | 欧美一区二区三区网站 | 成人三级在线播放 | 精精国产xxxx视频在线播放 | 欧美激情视频一区二区 | 麻豆极品 | 91偷拍网 | 日韩欧美三级在线观看 | av高清不卡 | 久国产视频 | 自拍偷拍1| 91久久亚洲 | 992av| 亚洲激情图 | 土耳其xxxx性hd极品 | 欧美在线高清 | 熟睡侵犯の奶水授乳在线 | 中文字幕久久一区 | av大片在线看 | 16一17女人毛片 | 激情网五月天 | 五月激情婷婷在线 | 91插插插视频 | 国产天天操| 免费视频a | 国产哺乳奶水91在线播放 | 久久精品视频观看 | 中文字幕无码乱码人妻日韩精品 | 日韩一区二区三区三四区视频在线观看 | 五月天亚洲综合 | 一级片免费 | 少妇熟女一区二区 | 海角国产乱辈乱精品视频 | 免费在线国产视频 | 国产制服91一区二区三区制服 | 伊人久久精品视频 | 日本色偷偷 | 8mav在线| 十大黄台在线观看 | 在线精品亚洲欧美日韩国产 | 中文字幕日本人妻久久久免费 | www.av在线播放 | 91免费大片| 手机在线看片日韩 | 最新不卡av | 午夜激情啪啪 | 男女高h视频 | 欧美性在线视频 | 国产欧美日韩视频 | 久草精品视频在线观看 | 免费av大片 | 五月av| 2022国产精品 | 国产手机av | 奇米影视9999 | 一本色道久久综合亚洲精品 | 亚洲免费观看高清完整版在线 | 国产主播第一页 | 亚洲免费网站在线观看 | 国产露脸无套对白在线播放 | 烈性摔跤 | 欧美jizz19性欧美 | 国产精品国产三级国产aⅴ下载 | 深夜视频在线免费 | 成人手机看片 |