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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1642 规划 01分数规划+树形DP

發(fā)布時(shí)間:2025/7/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1642 规划 01分数规划+树形DP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

$ \color{#0066ff}{ 題目描述 }$

某地方有N個(gè)工廠,有N-1條路連接它們,且它們兩兩都可達(dá)。每個(gè)工廠都有一個(gè)產(chǎn)量值和一個(gè)污染值?,F(xiàn)在工廠要進(jìn)行規(guī)劃,拆除其中的M個(gè)工廠,使得剩下的工廠依然連成一片且 總產(chǎn)量/總污染 的值最大。

\(\color{#0066ff}{輸入格式}\)

第一行N M(1<N<100,1<=M<N),表示工廠個(gè)數(shù)和要拆除的個(gè)數(shù)。

第二行N個(gè)正整數(shù),表示每個(gè)工廠的產(chǎn)值[1..10000]

第三行N個(gè)正整數(shù),表示每個(gè)工廠的污染值[1..10000]

接著N-1行,每行兩個(gè)正整數(shù)a b(1<=a,b<=N)表示a,b之間相連。

\(\color{#0066ff}{輸出格式}\)

總產(chǎn)量/總污染 的最大值,保留一位小數(shù)。

\(\color{#0066ff}{輸入樣例}\)

3 2 2 3 4 1 1 1 1 2 2 3

\(\color{#0066ff}{輸出樣例}\)

4.0

\(\color{#0066ff}{數(shù)據(jù)范圍與提示}\)

none

\(\color{#0066ff}{題解}\)

顯然是01分?jǐn)?shù)規(guī)劃問題,那么二分答案

現(xiàn)在的問題是找一個(gè)大小為m的聯(lián)通塊

經(jīng)典樹形DP,\(f[i][j]\)為以i為根子樹選j個(gè)點(diǎn)的最大值(i必選)

跑樹形背包即可,注意i必選的限制,所以要對(duì)所有點(diǎn)取max

#include<bits/stdc++.h> #define LL long long LL read() {char ch; LL x = 0, f = 1;while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));return x * f; } template<class T> bool chkmax(T &a, const T &b) { return a < b? a = b, 1 : 0; } template<class T> bool chkmin(T &a, const T &b) { return b < a? a = b, 1 : 0; } const int inf = 0x7fffffff; const int maxn = 555; const double eps = 1e-6; int n, m, a[maxn], b[maxn], siz[maxn]; double f[maxn][maxn], val[maxn], mx; std::vector<int> G[maxn]; void dfs(int x, int fa) {siz[x] = 1;f[x][0] = 0, f[x][1] = val[x];for(auto to : G[x]) {if(to == fa) continue;dfs(to, x);siz[x] += siz[to];for(int i = std::min(m, siz[x]); i >= 1; i--)for(int j = 0; j < i; j++)chkmax(f[x][i], f[x][i - j] + f[to][j]);}chkmax(mx, f[x][m]); } bool ok(double mid) {for(int i = 1; i <= n; i++)for(int j = 0; j <= m; j++) f[i][j] = -inf;for(int i = 1; i <= n; i++) val[i] = (double)(a[i] - mid * b[i]);mx = -1e18;dfs(1, 0);return mx >= 0; }int main() {n = read(), m = n - read();for(int i = 1; i <= n; i++) a[i] = read();for(int i = 1; i <= n; i++) b[i] = read();int x, y;for(int i = 1; i < n; i++) {x = read(), y = read();G[x].push_back(y);G[y].push_back(x);}double l = 0, r = 105050;while(r - l > eps) {double mid = (l + r) / 2.0;if(ok(mid)) l = mid;else r = mid;}printf("%.1f\n", l);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/olinr/p/10652961.html

總結(jié)

以上是生活随笔為你收集整理的P1642 规划 01分数规划+树形DP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品极品视频免费观看 | 国产精品一区二区三区四 | 一边摸内裤一边吻胸 | 国产精品视频一区二区三区不卡 | 综合成人在线 | 让男按摩师摸好爽视频 | 青青草在线免费观看 | 国产99爱| 女人18毛片毛片毛片毛片区二 | 亚洲国产日韩一区无码精品久久久 | 波多野结衣亚洲天堂 | 新狠狠干 | 久久riav| 亚洲天堂999 | 青青草原av在线 | 亚洲人视频在线 | 国产自精品 | 骚虎视频最新网址 | 国产精品久久久一区二区 | 成年人视频在线看 | 最新天堂av| 亚洲 精品 综合 精品 自拍 | 人操人人 | 亚洲大尺度在线观看 | 日韩欧美字幕 | 日韩精品在线免费观看视频 | 一区二区三区欧美在线 | 欧美va视频 | 精品动漫一区二区三区的观看方式 | 亚洲欧美中文字幕5发布 | 免费观看成人 | 91精品国产综合久久久蜜臀图片 | 中文日韩av | www.在线观看麻豆 | 日韩精品一区在线播放 | 国产黄a三级三级三级看三级男男 | 极品少妇xxxx精品少妇 | 特级毛片爽www免费版 | 亚洲精品三级 | 成人久久电影 | 精精国产 | 亚洲av无码久久忘忧草 | 日本高清不卡二区 | 久久久久久久久久久99 | 国产一级片精品 | xxxx日本少妇 | 日本在线 | 丁香视频在线观看 | 中文字幕一二 | 国产精品丝袜黑色高跟鞋的设计特点 | 国产成人久久婷婷精品流白浆 | 国产人成视频在线观看 | 蜜桃av免费 | 欧美高清性xxxxhdvideosex | 日日弄天天弄美女bbbb | 成人伊人网 | 国产精品va | 日韩在线欧美 | 亚洲女同一区二区 | 美女污污网站 | www.xxxx国产| 中国在线观看免费视频 | 欧美日韩999| 色666 | 可以免费看av | 超污巨黄的小短文 | 丁香婷婷综合激情五月色 | 中文字幕在线观看视频网站 | 国产精品作爱 | 在线看黄色网 | 毛片大全免费 | ⅹxxxxhd亚洲日本hd老师 | 欧美黄色小视频 | 欧美熟妇一区二区 | 99九九精品视频 | 中文字幕av网址 | 先锋影音中文字幕 | 中文字幕有码无码人妻av蜜桃 | 一区二区在线视频 | 播放灌醉水嫩大学生国内精品 | 香蕉久久久久久 | 色视频免费 | 日本一区二区三区在线视频 | 亚洲www久久久 | 18久久 | 丰满放荡岳乱妇91ww | 男男play呻吟动漫网站 | 国产成人精品免费 | 国产区高清 | 国产视频高清 | 久久午夜视频 | 99精品福利 | 久久中文娱乐网 | 十大污视频 | 草碰在线视频 | 男人猛吃奶女人爽视频 | 国产中文字幕乱人伦在线观看 | 亚洲av乱码久久精品蜜桃 | 欧美福利网 |