随笔分类 - 进阶指南题解
摘要:传送门: https://www.acwing.com/problem/content/description/211/ 分析 采取这样的贪心策略:将物品看作是矩阵中的行,按照花费升序排序,然后从 扫描,当第 个行和前面加入的所有行线性无关的时候,就将其花费计入答案,反之
阅读全文
摘要:这题题面并不是很严密啊。。应该说明当石子在走出棋盘边界判定为移除,不然有可能会被理解为不做行动。 分析 操作次数很大,直接模拟行不通。 我们想办法将棋盘上所有格子的一次操作转化为矩阵上的变换来解决。 考虑将棋盘上的格子转化为编号,也就是 行 列的格子编号为 \((i-1)m
阅读全文
摘要:这题属实逆天。。题面在输出格式中没有说明需要将编号排序后输出,让我困惑了半天呜呜。 分析 题目本身的思路是很简单的。 我们从一个人说 yes 和 no 能够得到什么呢? 假设这个人是天神,那么说 yes 说明对方也是天神,否则是恶魔。 假设这个人是恶魔,那么说 yes 说明对方也是恶魔,否则是天神。
阅读全文
摘要:这题括号多余的情况好恶心 orz,以及负数的情况也增加了这题的难度。 分析 首先,解决一般的中缀表达式转后缀表达式问题: 这里的运算符包括 +,-,*,/,^,当然,扩大运算符包含的集合的时候我们也可以类似推广。 考虑用一个答案栈 res 以及运算符栈 ops 来操作。 遇到数字的时候,将它丢入 r
阅读全文
摘要:这题的思想还是很有意思的~ 分析 考虑将读入的数处理成 pair 数组,第一个属性代表读入的值,第二个属性代表下标。 然后将 pair 数组对值升序排序,可以发现,如果想要 pair 连续的一段出现在同一个双端队列中,那么下标一定是先递减再递增(像山谷一样)(当然,单调这种退化的形式也算)。 为什么
阅读全文
摘要:传送门:https://www.acwing.com/solution/content/82014/ 分析 假如没有染色顺序的约束,那么最佳决策当然是先染权值大的点(本质上就是排序不等式)。 然而现在它有约束,但我们可以保证的一点是:当树上最大的点 的父节点 被染色的时候,立
阅读全文