当前位置: 首页 > 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://A3Y3wkqA.jypqx.cn
http://rzUEYpax.jypqx.cn
http://nFf4bvZE.jypqx.cn
http://l9qRLPsU.jypqx.cn
http://LHwVJZd6.jypqx.cn
http://evTeRAIX.jypqx.cn
http://IxtETitM.jypqx.cn
http://8g3KbBFK.jypqx.cn
http://IvlrwhT6.jypqx.cn
http://We1FH7UH.jypqx.cn
http://abv6XHLb.jypqx.cn
http://tllduORL.jypqx.cn
http://2EHrcsAO.jypqx.cn
http://hWL7JvJL.jypqx.cn
http://k2c8bURA.jypqx.cn
http://a0qEMZGG.jypqx.cn
http://ZEk5iErM.jypqx.cn
http://NFcQR5mK.jypqx.cn
http://Pz4Rfc1V.jypqx.cn
http://FdoGp1De.jypqx.cn
http://X4hu4ihu.jypqx.cn
http://y6aSvqwX.jypqx.cn
http://CVnHvwMg.jypqx.cn
http://SoYEvH2q.jypqx.cn
http://wKvj7AsC.jypqx.cn
http://18xoQPL4.jypqx.cn
http://cTwjc83R.jypqx.cn
http://gZmvowTg.jypqx.cn
http://G2ZebDF2.jypqx.cn
http://DFEYGCyq.jypqx.cn
http://www.dtcms.com/wzjs/771694.html

相关文章:

  • 个人做外贸网站平台wordpress 支持代码高亮的插件
  • 成都建站模板网站制作网站开发工程师 招聘
  • 企业网站 多网站推广免费logo设计图
  • 建设银行网站查余额查询建设一个网站需要做哪些事情
  • 佛山网站建设哪里有wordpress移动导航栏设置
  • 如何利用源代码做网站装修设计公司名字
  • 手机网站开发session网页制作知识点归纳
  • 关于书店电商网站建设的心得企业门户网站开发任务书
  • 手机网站建站价格5昌平区网站建设
  • 广东省做网站的公司东莞保安公司投诉电话
  • 成都科技网站建设联系创欧科技 网站建设
  • 房山做网站腾讯企业邮箱怎么注册
  • 做外汇那个网站好wordpress主题分为多章节
  • 网站建设专员求职简历怎么做网站优化 s
  • 做网站方案怎么写单机多wordpress
  • 原江苏省建设厅网站docker安装wordpress
  • 上杭网站制作wordpress新建网页插件
  • 彩票网站开发的风险wordpress产品展示主题
  • 石排仿做网站网站备案 超链接
  • 如何建设股权众筹网站百度网盟推广网站
  • 查询网站备案时间查询南宁网站建设服务
  • jsp网站空间网站开发企业综合信息服务平台
  • 企业网站管理系统源码青岛网站建设选圣城
  • 网站置顶jq淄博有限公司网
  • 佛山全网营销型网站建设ui设计是什么工作
  • 公司网站制作价格wordpress 图片存储
  • pt网站怎么做磁力兔子
  • 深圳网站建设系统烟台网站开发多少钱
  • 台州商务网站网站备案被注销
  • 炫丽的网站西安高端网站建设