当前位置: 首页 > wzjs >正文

郑州金水区做网站公司北京seo服务商

郑州金水区做网站公司,北京seo服务商,中国室内设计网官网总裁,龙岩有什么公司P1273 有线电视网 - 洛谷 算法讲解079【必备】树型dp-下_哔哩哔哩_bilibili 正常的树形dp, 对于dp[i][j]表示对于节点i, j个用户净赚钱的最大值, dp[i][j]由子节点转移过来, 遍历每个i的子节点v时, 每个子节点v都更新一次dp[i][j], 每次更新O(m * m) 时间复杂度不行 利用dfn序…

P1273 有线电视网 - 洛谷

算法讲解079【必备】树型dp-下_哔哩哔哩_bilibili

正常的树形dp, 对于dp[i][j]表示对于节点i, j个用户净赚钱的最大值, dp[i][j]由子节点转移过来, 遍历每个i的子节点v时, 每个子节点v都更新一次dp[i][j], 每次更新O(m * m) 时间复杂度不行

利用dfn序的话, 从dfn序号从小到大开始遍历, 对于每个点i, i点选或者不选有,   dp[i][j] = max(dp[i - size(i)][j], dp[i - 1][j - 1]) 

为什么可以这么做: 常规做法 点i从第一个子节点转移过来时, dp[i]只能从dp[i][0]转移过来, 但是当从i的第二个叶子节点来更新i时, dp[i]的所有第二维都会有值, 更新需要O(m * m)时间, dfn序的写法, 点i只从点i - 1(dfn序中的序号)和i - size(i)更新而来, 而且这两个互相不影响

代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;struct info {int to, w;
};void solve(){int n, m;cin >> n >> m;vector<int> dfn(n + 1), size(n + 1);vector<vector<info>> edge(n + 1);vector<vector<int>> dp(n + 1, vector<int>(m + 1, -1e9));vector<int> cost(n + 1);int idx = 1;for(int i = 1; i <= n - m; i++) {int k;cin >> k;while(k--) {int a, c;cin >> a >> c;edge[i].push_back({a, -c});cost[a] += -c;}}for(int i = n - m + 1; i <= n; i++) {int x;cin >> x;cost[i] += x;}dp[0][0] = 0;auto dfs = [&] (auto self,int x, int p) -> void {for(auto [to, w] : edge[x]) {if(to == p) continue;self(self, to, x);size[x] += size[to];}size[x] ++;dfn[x] = idx++;dp[dfn[x]][0] = 0;for(int i = 1; i <= m; i++) {if(x <= n - m) {dp[dfn[x]][i] = max(dp[dfn[x] - 1][i] + cost[x], dp[dfn[x] - size[x]][i]);} else {dp[dfn[x]][i] = max(dp[dfn[x] - 1][i - 1] + cost[x], dp[dfn[x] - size[x]][i]);}}};dfs(dfs, 1, 0);int ans = 0;for(int i = 0; i <= m; i++) {if(dp[dfn[1]][i] >= 0) ans = max(ans, i);// cout << dp[dfn[1]][i] << '\n';}cout << ans;}int main(){std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T = 1;//cin >> T;while(T--) solve();return 0;
}

http://www.dtcms.com/wzjs/225134.html

相关文章:

  • 做网站学习什么在哪里查关键词排名
  • 深圳做网站一个月多少钱网上推广赚钱项目
  • 婚纱摄影网站定制查询seo
  • 在家里组一个服务器做网站榆林seo
  • com域名和精品vip域名哪个好百度怎么优化网站关键词
  • 网站的实施方案口碑营销的优势
  • 网站建设行业分析手游免费0加盟代理
  • 开发公司网站设计湖南手机版建站系统开发
  • 网站制作与网站建设网站排名优化+o+m
  • 最佳经验网站培训机构加盟店排行榜
  • 做企业网站备案收费吗微指数
  • 企业网站建设发展平台友情连接出售
  • 高端网站开发seo软件工具箱
  • 党建网站开发需求最近有哪些新闻
  • 创网如何做seo整站优化
  • 网站如何做郑州做网站公司有哪些
  • 网站建设网页开发网络营销出来可以干什么工作
  • 网站制作公透明清晰查找关键词的工具叫什么
  • 重新安装一个微信seo新站如何快速排名
  • 公信域名和网站建设是一样的吗百度热搜关键词
  • 微平台网站开发百度人工电话
  • 论坛网站开发教程专业外贸网络推广
  • 网站ico图标百度浏览器官网入口
  • 网站设计与网页制作岗位招聘信息windows优化大师使用方法
  • 做网站的大型公司自己做网站建设
  • 北京住房和城乡建设委员会网站电话香港百度广告
  • 合肥做网站的的公司长尾关键词搜索
  • 北京商场需要几天核酸上海牛巨微seo
  • 苏州企业网页设计中国优化网
  • 营销网站找什么公司做电商运营自学全套教程