摘要:
[HAOI2015] 树上染色 树形 \(DP\) , 一道有点恶心的树上背包. 设状态 \(f[x][i]\) 表示以 \(x\) 为根节点的子树中选 \(i\) 个节点染黑的最大价值. 考虑转移, 枚举以 \(x\) 为根节点的子树中选 \(j\) 个黑点, \(x\) 的子节点 \(y\) 选 阅读全文
摘要:
[HNOI2003] 消防局的设立 树形 \(DP\) , 其实这个题的贪心非常好想也非常好写, 但是为了练习树形 \(DP\) , 嘶~ 这个题不算难, 但是我写了好久, 原因是写错下标了... 设状态 \(f[x][0/1/2/3/4]\) 表示以 \(x\) 为根节点, 覆盖到向上 \(2/1 阅读全文
摘要:
P2015 二叉苹果树 树形 \(DP\) , 虽然非常简单...但是我写了好久, 就因为预处理...日! 它是把贡献放在边上了, 我们做一个转化, 把边权转化成点权, 然后 \(Q++\) , 这样就好处理多了. \(code:\) #include <bits/stdc++.h> using n 阅读全文
摘要:
[CTSC1997] 选课 人生中的第一道树形 \(DP\) . 这是一道树形 \(DP\) , 很显然, 这个题的课程关系是一个森林, 我们把 \(0\) 节点也算上, 就成了一棵树. 我们设状态 \(f[u][i]\) 表示以 \(u\) 为根节点的子树中选 \(i\) 个课程的最大学分. 转移 阅读全文
摘要:
[NOI2009] 二叉查找树 今天搞了一天区间 \(DP\) , 希望能有点进步. 这个题仍然是区间 \(DP\) , 比今天做的前几个要难一些, 因为它需要有一些性质的提炼. 乍一看, 莫得思路, 但是我们可以发现几个关键字眼: 改为任何实数 , 这说明什么, 说明那个必须保证所有数不同的限制不 阅读全文
摘要:
[CERC2014] Outer space invaders 区间 \(DP\) , 按照时间设计状态, 但是由于时间的数据范围比较大, 而数据的个数很少, 我们只关心时间的相对大小而不关心具体时间, 那我们就可以离散化. 这样就可以把时间的范围从 \(1e4\) 缩到 \(600\) . 复杂度 阅读全文
摘要:
P1220 关路灯 区间 \(DP\) , 设 \(f[i][j][0/1]\) 表示关完 \([i, j]\) 的灯后在左/右边的最小值, 然后我们枚举 \(i\) 和 \(j\) , 用 \(f[i][j][0/1]\) 更新状态 \(f[i - 1][j][0/1]\) 和 \(f[i][j 阅读全文
摘要:
[SCOI2003] 字符串折叠 区间 \(DP\) , 设 \(f[i][j]\) 表示区间 \((i, j)\) 的最短折叠长度, 然后枚举 \(k \in (i, j)\) , 判断 \((i, k)\) 是否是 \((i, j)\) 的一个循环节, 是就取 \(f[i][j] = \min 阅读全文
摘要:
CF1301E Nanosoft 一道大水题, 燃鹅我写了一天, 日... 思路非常简单, 就是处理出每个 \(logo\) 大小, 然后用二维 \(ST\) 表维护, \(O(n^3)\) 预处理, \(O(n^2 \log n)\) 处理 \(ST\) , \(O(1)\) 查询, 为了便于操作 阅读全文
摘要:
那些年犯过的 SB 错误 1: 多组数据忘记清空数组 2: 清空时 memset TLE 只要用 \(sizeof(int) * (n + 1)\) , 用多少清多少就好啦. 3: 求最值忘记初始化 最大值要初始化到 \(-inf\) (避免负数) , 最小值要初始化到 \(inf\) . 4: 位 阅读全文