合集-题解
摘要:P5327 [ZJOI2019] 语言 最开始读错了题, 不然真有可能自己做出来, 遗憾。 考虑一个性质, 每次更新的语言都不一样, 那么这条链上的每个点对都可以互相进行贸易, 那么如果一个点在多条链上, 那它与这些链的所有人都可以贸易, 所以考虑点 \(x\) 的贡献, 就是所有覆盖 \(x\)
阅读全文
摘要:UVA1316 Supermarket 题面 题解 解法1: 考虑反悔贪心, 按截至日期为第一关键字排序, 贡献为第二关键字排序, 如果能卖就卖, 不能卖就把他和之前卖过最小贡献交换, 这个可以用优先队列搞。 证明: 很显然。 假设存在一个数更优, 也就是截止日期合法, 且贡献更大, 那么他肯定会在
阅读全文
摘要:CF1787H Codeforces Scoreboard 校内测试的一道题, 考试时根本没动。。 题面 考虑 \(k\) 比较大的放前面肯定优, 然后修门挨着放也肯定优, 所以先按 \(k\) 排个序, 然后我们就只考虑每个门修不修。 设计状态 \(f[i][j]\) 表示前 \(i\) 个点,
阅读全文
摘要:Max Correct Set 考虑 \(n\) 的范围那么大, 肯定要找到神秘结论。 所以瞎考虑 \(x = y\) 的情况, 不难想到放 \(x\) 个连续的数, 再空 \(x\) 个不 放, 再放 \(x\) 个连续的。 再考虑 \(x \not= y\) 的情况, 我们猜测依旧是按循环节长度
阅读全文
摘要:P2481 [SDOI2010] 代码拍卖会 考虑位数为 \(n^{18}\), 很不可做, 但是我们发现 \(p\) 很小, 并且条件要求 \(p\) 整除这个数, 所以我们可以只考虑余数, 那么dp状态肯定有一维 \(s\) 是 \(x mod p = s\), 再考虑。 要求这个数各个位上的数
阅读全文
摘要:P5336 [THUSC2016] 成绩单 考虑这个题, 他是随机抽一段, 然后剩下的又拼起来, 这不符合常规的区间DP。 因为他出现这样一种情况, 一段数中被扣出若干段, 剩下若干段。 如图: 红色的是被取出的, 黑色的是留下的, 考虑我们的 DP 需要包含这样的一个状态, 考虑这道题比较特殊,
阅读全文
摘要:[AGC035D] Add and Remove 非常妙的一道题, 考虑最后剩下一定是 \(a[1]\) 和 \(a[n]\), 我们就想一想可不可以算每个数会对答案产生多少贡献?我们如果考虑加数似乎更方便? 考虑刚开始在 \(a[1]\) 和 \(a[n]\) 之间加入一个数 \(x\), 会产生
阅读全文
摘要:calc by smallbasic 前言 拜谢smallbasic, 出的神题, 故写题解以记之。 题解 考虑各个数都在各自的范围内随机取值, 并且可以是实数, 这就很困难。 我们可以将其拆开, 得: 设 \(X = \sum \lfloor x_i \rfloor , Y = \lfloor \
阅读全文
摘要:图论 P9697 [GDCPC2023] Canvas 贪心的,2 放后面,1 放前面,我们就只考虑 1 和 2。我们要让 2 尽可能地多,那么就是 2 要放在 1 后面,如果有一次操作 x1 y2,另一次操作 z1 x2。显然要把第二次放在一后面。我们可以倒着来,如果一次操作是 \((l, 1,
阅读全文