摘要: P2607 [ZJOI2008]骑士 题意: 上司的舞会增强版 思路: 因为一个骑士有且只有一个最讨厌的人,而且这个骑士不会讨厌自己,即该图中是没有自环的。 利用有向图去维护信息: 我们把 \(x\) 所讨厌的人 \(y\) 设为 \(x\) 的父亲节点,这样每一个人都有且只有一条出边,每个点的出度 阅读全文
posted @ 2021-09-22 21:15 Evitagen 阅读(51) 评论(0) 推荐(1) 编辑
摘要: P2279 [HNOI2003]消防局的设立 题目大意: 有一棵树,有一些标记节点可以覆盖距离小于 \(2\) 的点,要求所有点都被覆盖,求这些节点个数最小值。 分析: 进行贪心分析:我们标记一个节点时,如果标记了根节点,那么一定是比叶子节点更加优秀的点。 这个贪心很好证明,画个图就可以了。 我们通 阅读全文
posted @ 2021-09-22 19:06 Evitagen 阅读(20) 评论(0) 推荐(0) 编辑
摘要: P4438 [HNOI/AHOI2018]道路 题意: 从叶子节点到根节点,会经过 \(i\) 条烂公路 \(j\) 条烂铁路。 每个叶子节点的贡献为 \(c[i]*(a[i]+i) * (b[i]+j)\) 我们可以翻修 \(n-1\) 条路,求 \(\sum_{叶子节点 i} c[i]*(a[i 阅读全文
posted @ 2021-09-22 17:32 Evitagen 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 图片来源 扫描线: 使用一条垂直于 \(x\) 轴的直线,从左到右扫描这个图形,例如这样: 只有碰到矩形的左边界或者是右边界时这个线段所扫描到的情况才会改变。 因此,我们可以把所有矩形的入边和出边按 \(x\) 值排序,根据 \(x\) 值从小到大去处理。 用线段树维护扫描到的情况。 如上图: 如果 阅读全文
posted @ 2021-09-22 16:15 Evitagen 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 线段树进阶:\(pushdown\) 如果我们每进行一次加的操作,就将全部线段树更改一边,时间复杂度会很高。 因此,我们需要进行一个延迟加和的操作。 思路:如果 \([l,r]\) 区间增加 \(a\),在查询时,就可以把 \([l,r]\) 区间标记的增加量推下去就可以直接求值了。 这时候,我们需 阅读全文
posted @ 2021-09-22 16:14 Evitagen 阅读(712) 评论(0) 推荐(0) 编辑
摘要: P3780 [SDOI2017]苹果树 题目大意: 给定一个有根树,每个节点有权值 \(v_i\),节点值至多取 \(a_i\) 次,选儿子节点一定要同时选父亲节点一次,取 \(k\) 个节点值。 除此之外,还可以取一条最长链,求最大权值。 思路: 拿到这道题,先转化成理解的形式:树上背包 \(dp 阅读全文
posted @ 2021-09-22 12:41 Evitagen 阅读(83) 评论(0) 推荐(0) 编辑