摘要:
P5324 [BJOI2019] 删数 转化条件+线段树 由于值域不大,并且删数操作跟序列顺序无关,只和每个数的出现次数有关,考虑在值域上分析删数操作。发现对于每一个值 \(i\) 可以抽象为覆盖了 \([i-buc_{i}+1,i]\) 的区间。要使数列删空,就要让 \([1,n]\) 被填满。这 阅读全文
摘要:
CF1420D Rescue Nibel! 首先要发现一个性质:如果一些线段有交集,那么交集一定是条线段,并且一定有其中一条线段的左端点是交集的左端点。 所以方案可以转化为求其中一条线段的左端点是交集的左端点的方案数。 这启发我们枚举每个点作为交集的左端点,计算至少有一条线段的左端点是这个点的方案数 阅读全文
摘要:
CF1861C Queries for the Array 不太一样的写法,感觉比较容易理解一点。码量也比较短。 首先我们要发现:一个序列如果目前是升序的,那么它不管删多少个数(中间不再加数),最终还是升序的;如果目前不是升序,那么不管加多少个数,最终也不是升序。 这启发我们用两个数组 \(up_i 阅读全文
摘要:
P9755 [CSP-S 2023] 种树 首先,容易看出单调性,可以对最少天数二分。转为判定性问题后,我们思考如何判定。对于每棵树,都可以从刚种下长到最后一天。我们由此可以写出 \(calc(i,l,r)\) 表示第 \(i\) 棵树从第 \(l\) 天长到第 \(r\) 天的高度。 \(calc 阅读全文
摘要:
P9837 汪了个汪 人类智慧题,虽然看懂了,但还是想不出来。 考虑正解。\(n\) 个不同的数的无序二元组有 \(\dfrac{n(n-1)}{2}\) 个,而在棋盘上出现的无序二元组也有 \(\dfrac{n(n-1)}{2}\) 个,这说明我们必须不重不漏的把所有无序二元组都放进棋盘。 对于构 阅读全文