Description

树形背包, 遍历到一个节点, 枚举它的每个子节点要选择多少个用户进行转移。

Code

  1. #include<cstring>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #define rd read()
  5. #define R register
  6. #define rep(i,a,b) for(register int i = (a); i <= (b); ++i)
  7. #define per(i,a,b) for(register int i = (a); i >= (b); --i)
  8. using namespace std;
  9.  
  10. const int N = 3e3 + ;
  11. const int inf = 1e8;
  12.  
  13. int n, m, tot, head[N];
  14. int a[N], sum[N], F[N][N];
  15.  
  16. struct edge {
  17. int nxt, to, val;
  18. }e[N];
  19.  
  20. inline int read() {
  21. int X = , p = ; char c = getchar();
  22. for(; c > '' || c < ''; c = getchar()) if(c == '-') p = -;
  23. for(; c >= '' && c <= ''; c = getchar()) X = X * + c - '';
  24. return X * p;
  25. }
  26.  
  27. inline void add(R int u, R int v, R int val) {
  28. e[++tot].to = v;
  29. e[tot].nxt = head[u];
  30. e[tot].val = val;
  31. head[u] = tot;
  32. }
  33.  
  34. inline int cmax(int A, int B) {
  35. return A > B ? A : B;
  36. }
  37.  
  38. inline void dp(R int u) {
  39. for(R int i = head[u]; i; i = e[i].nxt) {
  40. R int nt = e[i].to;
  41. dp(nt);
  42. sum[u] += sum[nt];
  43. per(k, sum[u], ) per(j, sum[nt], ) if(k >= j)F[u][k] = cmax(F[u][k], F[u][k - j] + F[nt][j] - e[i].val);
  44. }
  45. if(u >= n - m + ) F[u][] = a[u], sum[u] = ;
  46. }
  47.  
  48. int main()
  49. {
  50. n = rd; m = rd;
  51. rep(i, , n - m) {
  52. R int cnt = rd;
  53. rep(j, , cnt) {
  54. R int u = rd, val = rd;
  55. add(i, u, val);
  56. }
  57. }
  58. rep(i, n - m + , n) a[i] = rd;
  59. rep(i, , n) rep(j, , m) F[i][j] = -inf;
  60. dp();
  61. per(i, m, )
  62. if(F[][i] >= ) return printf("%d\n", i), ;
  63. }

Luogu 1273 有线电视网 - 树形背包的更多相关文章

  1. Luogu P1273 有线电视网(树形dp+背包)

    P1273 有线电视网 题面 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部 ...

  2. [ Luogu 1273 ] 有线电视网

    \(\\\) \(Description\) 一棵\(N\)个节点的树,编号在\([N-M+1,N]\)内的点必定为叶子节点,且这些点都有一个收益值\(Val_i\),同时每一条树边都有一个代价. 访 ...

  3. Luogu P1273 有线电视网 树形DP

    又重构了一下...当然当初的题一看就看懂了QAQ 设f[i][j]表示以i为根的子树,有j个客户的最大收益 方程:f[u][j+k]=max(f[u][j+k],f[u][j]+f[v][k]-w(u ...

  4. P1273 有线电视网[分组背包+树形dp]

    题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从转播站到转播站以及从 ...

  5. Luogu P1273 有线电视网

    最近写DP写得比较多了 但是POJ上的题目太傻比了而且不想看英文的题面,然后就在Luogu的试炼场里找了一个DP EX专题写了一下(大概3days吧,一天一题差不多) 这是一道比较简单的DP 话说树形 ...

  6. P1273 有线电视网(树形dp)

    P1273 有线电视网 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. ...

  7. luoguP1273 有线电视网 [树形dp]

    题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从转播站到转播站以及从 ...

  8. 洛谷 P1273 有线电视网(树形背包)

    洛谷 P1273 有线电视网(树形背包) 干透一道题 题面:洛谷 P1273 本质就是个背包.这道题dp有点奇怪,最终答案并不是dp值,而是最后遍历寻找那个合法且最优的\(i\)作为答案.dp值存的是 ...

  9. Luogu P1273 有限电视网【树形Dp/树形背包】

    题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从转播站到转播站以及从 ...

随机推荐

  1. 弹窗切换page进行关闭

    beforeRouteLeave(to,from,next){ //这里写关闭弹窗 // 这里跳转路由 MessageBox.close(); next() // next()别漏,不然不跳转 }

  2. surf特征点检测

    ※注:参数SURF中的hessian阈值是图像Hessian矩阵判别式的阈值,值越大检测出的特征点就越少,也就意味着特征点越稳定 #include "opencv2/core/core.hp ...

  3. Java的学习04

    今天依旧记录一下,学习的东西. import java.io.File; import java.io.IOException; import java.util.Date; /** * 测试File ...

  4. metasploit framework(九):SMB服务扫描

    SMB版本扫描 扫描命名管道,判断SMB服务类型 SMB共享枚举 SMB用户枚举 SID枚举

  5. JMeter学习(六)检查点(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter也有像LR中的检查点,本篇就来介绍下JMeter的检查点如何去实现. JMeter里面的检查点通过添加断言来 ...

  6. tab template

    <div class="box"> <div class="box-body"> <div class="nav-tab ...

  7. serv-U使用

    该软件是设置ftp服务器的 可以百度查询ftp服务器安装攻略,如 https://jingyan.baidu.com/article/cb5d6105c00bba005c2fe0ca.html 问题: ...

  8. poj1845(逆元+快速幂)

    题目链接:https://vjudge.net/problem/POJ-1845 题意:求A的B次方的所有因子(包括1)的和对9901的模. 思路:首先对A利用唯一分解定理得A=p1x1*p2x2*. ...

  9. Android 单元测试四大组件Activity,Service,Content Provider , Broadcast Receiver

    先mark, 后补充 https://blog.csdn.net/stevenhu_223/article/details/14054313 https://www.jianshu.com/p/3aa ...

  10. 测试用户体验相关——UI设计准则及方法

    之前跟我们uxc同学聊过一些,记录下来,方便在工作中不断渗透深入和理解,能够逐渐养成比较好的审美和对UI交互问题的敏锐的觉察力. 以问题为导向来吧... 第一个问题:一个menu中的图标一定要风格一致 ...