• 2024-08-12P2014 [CTSC1997] 选课
    题意点击查看题目题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有\(N\)门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只
  • 2024-08-10P2014 [CTSC1997] 选课
    原题链接题解解法一:三维dp,dp[root][j][k]含义,以root为根结点的树中只在前j棵子树中选k门课程的最大学分。code #include<bits/stdc++.h>usingnamespacestd;intn,m;intval[305],num[305];intdp[305][305][305];vector<vector<int>>G(302);intf(
  • 2024-02-17选课 洛谷P2014
    传送门\(\Large\textbf{问题描述}\)大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选
  • 2023-08-05[刷题笔记] Luogu P2014 [CTSC1997] 选课
    ProblemSolution我们发现本题中有好多主从关系,即要想取用一个儿子必须先取用她的父亲。构成了一个森林,处理不便。有个小技巧,就是将0号节点参与建树,最后所求节点数就变成了\(m+1\),且把森林变成了一棵树。然后如何处理呢?再次理解题意,我们发现,我们每次的决策是是否取用儿子,取用
  • 2023-05-10P2014
    P2014题意从一棵树中选择m条与根节点直接/间接相连的点,使得总权值最大DP(树上背包)状态:\(dp[i][j]\)表示在以\(i\)为根的子树中,选择了\(j\)个点的权值最大值转移选择第k个点:\(dp[i][j]=dp[i][j-k]+dp[to][k]\)不选第k个点:\(dp[i][j]=dp[i][j]\)决策:\(dp[i][j]=
  • 2023-03-12P2014 [CTSC1997] 选课
    P2014[CTSC1997]选课-洛谷|计算机科学教育新生态(luogu.com.cn)这题的技巧:把这些没有父亲节点的点,把他们的父亲节点令为0,则可从多课树变成一棵树。细节:由于0点是
  • 2023-02-07洛谷 P2014 选课 树形依赖背包
    题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功
  • 2023-01-31P2014 选课 ( 树上背包 )
    先看树上背包的板子:假设我们的树长这样:那么其实我们就有个比较朴素的想法:对一个结点对它的儿子们进行背包dp比如对于1号点我们就可以对2号3号进行背包dp问题是4
  • 2022-11-26洛谷P2014 [CTSC1997] 选课
    sloj P2006.「树上背包」选课题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总