摘要: 给一些二元组,规定 \((u,v)\) 中,\(u\) 的出现顺序要高于 \(v\),并且要让值较小的尽量靠前出现,求最终的序列。 第一眼看着像最小字典序拓扑序,写了一下,发现过不去 \(3\) 测。考虑如何转化到一个好写的东西。 想让权值较小的数靠前出现,考虑权值较大的数,需要其在后面出现,并且较 阅读全文
posted @ 2024-08-22 15:17 Pump_kin 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 给定一个 \(n\) 个点,\(m\) 条边的有向无环图,每条边长度都是 \(1\)。 请找到一个点,使得删掉的这个点之后剩余的图中的最长路径最短。 首先考虑暴力,可以枚举删掉哪一个点,之后再在拓扑排序上 DP,然后取一个 \(\max\) 即可,时间复杂度\(O(n(n+m))\)。 显然,这样太 阅读全文
posted @ 2024-08-21 15:08 Pump_kin 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 01 背包 \(01\) 的意图很明显,就是每个物品有 \(01\),即 选 和 不选 两种方式。 暴力 考虑设定一个状态 \(dp[i][j]\) 表示在前 \(i\) 个当中,花费为 \(j\) 所能获得的最大值。 转移可以: \(dp_{i,j}=\max(dp_{i-1,j},dp_{i-1 阅读全文
posted @ 2024-05-24 18:39 Pump_kin 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 单调队列 考虑在一个序列中维护一个类似于窗口的东西。 以下不妨设求得是窗口最大值。 首先根据贪心,如果当前数整个窗口中最大的,并且是最靠前的,那么这个数前面的所有数都不会对答案产生一点贡献。于是考虑维护一个单调递增的序列,需要从中找出答案。设置一个首指针,未指针代表这个窗口的开始和结束。 然后,考虑 阅读全文
posted @ 2024-05-19 16:36 Pump_kin 阅读(101) 评论(0) 推荐(1) 编辑