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

网站开发语言选择黄浦西安网站建设

网站开发语言选择,黄浦西安网站建设,网站建站公司哪家好,一学一做短视频网站目录 题目算法标签: 动态规划, 树上 d p dp dp思路树形 d p dp dp解法代码树上背包问题解法代码 题目 P2014 [CTSC1997] 选课 算法标签: 动态规划, 树上 d p dp dp 思路 非常显而易见的树上 d p dp dp问题, 可以考虑状态表示 f [ u ] [ j ] f[u][j] f[u][j]代表以 u u u为根…

题目

P2014 [CTSC1997] 选课

算法标签: 动态规划, 树上 d p dp dp

思路

非常显而易见的树上 d p dp dp问题, 可以考虑状态表示 f [ u ] [ j ] f[u][j] f[u][j]代表以 u u u为根节点的子树 分配 j j j个节点的最大价值

树形 d p dp dp解法代码

在递归之前先使用父节点更新当前节点信息, 在递归之后使用子节点更新父节点信息, 这样统计的信息是全面的

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;const int N = 310, M = N << 1;int n, m;
int head[N], ed[M], ne[M], idx;
int w[N];
int f[N][M];void add(int u, int v) {ed[idx] = v, ne[idx] = head[u], head[u] = idx++;
}void dfs(int u, int cnt) {if (cnt <= 0) return;for (int i = head[u]; ~i; i = ne[i]) {int v = ed[i];for (int k = 0; k < cnt; ++k) f[v][k] = f[u][k] + w[v];dfs(v, cnt - 1);for (int k = 1; k <= cnt; ++k) f[u][k] = max(f[u][k], f[v][k - 1]);}
}int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);memset(head, -1, sizeof head);cin >> n >> m;for (int i = 1; i <= n; ++i) {int fa;cin >> fa >> w[i];if (fa) add(fa, i);else add(0, i);}dfs(0, m);int ans = f[0][m];cout << ans << "\n";return 0;
}

树上背包问题解法代码

定义状态表示 f [ u ] [ i ] [ j ] f[u][i][j] f[u][i][j]表示以 u u u为根节点的子树中考虑 i i i个子节点并且总的体积不超过 j j j的所有方案中, 价值最大的方案, 因为是 d f s dfs dfs进行状态转移, 可以像 01 01 01背包问题一样优化掉一维, 但是第二维的体积需要反向枚举

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;const int N = 310, M = N << 1;int n, m;
int head[N], ed[M], ne[M], idx;
int f[N][M];void add(int u, int v) {ed[idx] = v, ne[idx] = head[u], head[u] = idx++;
}void dfs(int u) {for (int i = head[u]; ~i; i = ne[i]) {int v = ed[i];dfs(v);for (int j = m; j >= 0; --j) {for (int k = 0; k < j; ++k) {f[u][j] = max(f[u][j], f[u][j - k] + f[v][k]);}}}
}int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);memset(head, -1, sizeof head);cin >> n >> m;m++;for (int i = 1; i <= n; ++i) {int fa;cin >> fa >> f[i][1];add(fa, i);}dfs(0);int ans = f[0][m];cout << ans << "\n";return 0;
}
http://www.dtcms.com/a/456509.html

相关文章:

  • 网站开发需要多少钱如何重庆小程序开发
  • 网站备案幕布照片ps网站建设的展望
  • 网站建设费长期待摊费用一起做网店货源app
  • 网站设计全包cad dwt模板做网站模版
  • 男的女的做那个视频网站建设网站需要什么软件下载
  • 网站图片设置隐私保护怎么下载企业做网站的流程
  • 三亚做网站多少钱厦门网页设计学校
  • 青海省建设网站价格低学校建立网站
  • 国内较好的网站设计公司赤坎手机网站建设
  • 做网站一般链接什么数据库用jsp做婚纱网站的流程
  • 网站开发人员有哪些广州专业网站制作设计
  • 给网站首页图片做外网超链接_为什么会弹出一个服务器登录窗口建设文化产业网站的方案
  • 网站建设的渠道策略多图片ppt页面设计
  • 在电商网站上做推广的技巧wordpress关联微信
  • 创办网站需要怎么做网站建设与管理教程视频
  • 50万做网站视频策划方案怎么写
  • 网站建设的成本有哪些内容网站认证免费
  • 扫二维码直接进入网站 怎么做电子商务网站建设与维护第二版
  • 网站开发保密合同范本今天热搜榜前十名
  • 做网站优化给业务员提成苏州吴中区注册公司
  • 冻品网站的建设背景阿里云服务器怎么做网站
  • linux网站建设技术指南 百度网盘怎么制作游戏app
  • 百度怎样收录网站广州工商注册核名查询系统
  • 自助式网站电白网站建设公司
  • 登录注册网站怎么做西安网络公司网站建设
  • 花钱做网站需要所有权微信网站与响应式网站有哪些
  • php语言网站开发公司北京网站 体系
  • 做养生网站怎么赚钱手机管理wordpress站
  • 网站推广优化服务国家对网站建设有什么要求
  • 做网站软件要钱吗wordpress 菜单 手机端