Loading

摘要: CF786B Legacy 线段树优化建边。 首先 \(O(n^2)\) 建边会 \(MLE\),于是考虑优化。对于区间建边,我们可以用线段树优化建边。本质是用线段树上延迟标记的性质,可以先把边建在更大的节点上。 具体的,考虑维护两棵线段树,第一颗父亲向儿子连 \(0\) 边,表示大区间到小区间无代 阅读全文
posted @ 2024-03-27 22:01 Fire_Raku 阅读(36) 评论(0) 推荐(0)
摘要: P9130 [USACO23FEB] Hungry Cow P 动态开点线段树+线段树二分 考虑线段树。 首先区间范围是 \([1,10^{14}]\),而需要的点只有 \(n\log n\) 个,所以需要用到动态开点线段树。 考虑合并,需要维护每个区间留下的稻草 \(left\) 和还没填的空的数 阅读全文
posted @ 2024-03-27 21:00 Fire_Raku 阅读(92) 评论(0) 推荐(0)
摘要: P5324 [BJOI2019] 删数 转化条件+线段树 由于值域不大,并且删数操作跟序列顺序无关,只和每个数的出现次数有关,考虑在值域上分析删数操作。发现对于每一个值 \(i\) 可以抽象为覆盖了 \([i-buc_{i}+1,i]\) 的区间。要使数列删空,就要让 \([1,n]\) 被填满。这 阅读全文
posted @ 2024-03-24 20:37 Fire_Raku 阅读(62) 评论(0) 推荐(0)
摘要: CF1420D Rescue Nibel! 首先要发现一个性质:如果一些线段有交集,那么交集一定是条线段,并且一定有其中一条线段的左端点是交集的左端点。 所以方案可以转化为求其中一条线段的左端点是交集的左端点的方案数。 这启发我们枚举每个点作为交集的左端点,计算至少有一条线段的左端点是这个点的方案数 阅读全文
posted @ 2024-03-24 11:13 Fire_Raku 阅读(36) 评论(0) 推荐(0)
摘要: CF1861C Queries for the Array 不太一样的写法,感觉比较容易理解一点。码量也比较短。 首先我们要发现:一个序列如果目前是升序的,那么它不管删多少个数(中间不再加数),最终还是升序的;如果目前不是升序,那么不管加多少个数,最终也不是升序。 这启发我们用两个数组 \(up_i 阅读全文
posted @ 2024-03-24 11:08 Fire_Raku 阅读(41) 评论(0) 推荐(0)
摘要: P9755 [CSP-S 2023] 种树 首先,容易看出单调性,可以对最少天数二分。转为判定性问题后,我们思考如何判定。对于每棵树,都可以从刚种下长到最后一天。我们由此可以写出 \(calc(i,l,r)\) 表示第 \(i\) 棵树从第 \(l\) 天长到第 \(r\) 天的高度。 \(calc 阅读全文
posted @ 2024-03-24 10:59 Fire_Raku 阅读(429) 评论(0) 推荐(1)
摘要: P9837 汪了个汪 人类智慧题,虽然看懂了,但还是想不出来。 考虑正解。\(n\) 个不同的数的无序二元组有 \(\dfrac{n(n-1)}{2}\) 个,而在棋盘上出现的无序二元组也有 \(\dfrac{n(n-1)}{2}\) 个,这说明我们必须不重不漏的把所有无序二元组都放进棋盘。 对于构 阅读全文
posted @ 2024-03-24 10:58 Fire_Raku 阅读(30) 评论(0) 推荐(0)
摘要: CF1603C Extreme Extension upd 2024.11.14 数论+dp 首先要思考的一定是怎么操作操作次数会最小。然后就会发现一种贪心策略,即让每次分裂出来的最前面的数尽可能大。 求它的所有非空子段的极端值之和不好直接求,但它等价于求每个位置可能的操作次数(可重)之和。(答案的 阅读全文
posted @ 2024-03-23 21:02 Fire_Raku 阅读(35) 评论(0) 推荐(0)
摘要: P5021 [NOIP2018 提高组] 赛道修建 upd 2024.11.14 求最大值最小,通常先从二分思考。 枚举完二分的值以后,也就限制了最小值的下界。我们要让满足下界的赛道尽可能多。 由于是树,解决这样的问题就有树上 dp 和贪心。 到底是哪一个?走 dp 的话,状态已经不好设计了,难以描 阅读全文
posted @ 2024-03-23 20:56 Fire_Raku 阅读(108) 评论(0) 推荐(0)
摘要: P3592 [POI2015] MYJ upd 2024.11.13 区间 dp 这题的思路没有特别明显。可以从答案的计算出发,既然要消费,不妨设 \([1,n]\) 的最小值位置在 \(p\),那么在这里消费的顾客是可知的。 这时候剩下有消费的顾客一定在 \([1,p-1]\) 和 \([p+1, 阅读全文
posted @ 2024-03-23 20:53 Fire_Raku 阅读(54) 评论(0) 推荐(0)