摘要: P9312 [EGOI 2021] Lanterns / 灯笼 思路 首先有一个很显然的性质,你最优情况下选的灯笼包含的高度区间一定是连续的,原因是走路是免费的,所以你可以暂时不需要的灯需要了再买。 基于此,考虑 \(f_{i,j}\) 表示我已经有的灯笼中覆盖最小海拔的灯笼是 \(i\),最大海拔 阅读全文
posted @ 2026-07-29 10:57 WangNoNo 阅读(1) 评论(0) 推荐(0)
摘要: 思路 先考虑不带修改的 序列答案显然与其顺序无关,注意到等于 \(n\) 的数必定被选到,所以还剩 \(n - cnt_n\) 个,然后 \(n - cnt_n\) 被选,重复循环即可。 那我们如何求要修改的个数呢? 其实很显然,你每一步覆盖不到的部分显然需要别的地方重复覆盖的点去补,所以考虑每个值 阅读全文
posted @ 2026-07-24 23:57 WangNoNo 阅读(6) 评论(0) 推荐(0)
摘要: Step1 拿到这道题,我们先写直接写个暴力,显然 TLE 了,这是为什么呢,试着跑一个这样的代码。 #include<bits/stdc++.h> using namespace std; int count(int x,int cnt=0){ for(int i=x;i<=(1<<30)-1;i 阅读全文
posted @ 2026-07-23 17:24 WangNoNo 阅读(2) 评论(0) 推荐(0)
摘要: 交互类构造题是一类偏思维的题目,其正解往往十分简单易懂,但是很难想到。 那么我们应该如何解决这样的一类问题呢? 做不出构造题? 事实:题很难构造。 它很难过! 它还有细节, 而另一个你不动脑帮忙(她最坏了)。 不可能完成的任务? 事实上,只要抓住关键点,就能极大幅度的简化和指引你的思考,当然还有可能 阅读全文
posted @ 2026-05-24 00:51 WangNoNo 阅读(25) 评论(0) 推荐(0)
摘要: 一道很好的题,如果做法不当(像我)可能需要一些卡常。 Part 1. bitset 20tps 插入?并集? \(1e5\) ?显然可以用 \(bitset\) 维护: 每次修改把第 \(x\) 个 \(bitset\) 中的第 \(y\) 位修改成1 每次查询将 \(x1\) 和 \(x2\) 两 阅读全文
posted @ 2026-02-27 11:45 WangNoNo 阅读(23) 评论(1) 推荐(1)
摘要: 树链剖分,简称树剖。 它本质上就是把树划分成多条链,然后就可以使用线性数据结构如线段树等轻松维护树上路径的信息。 常见的剖分方法有重链剖分,长链剖分等。 一、重联剖分 最典型的一种剖分方式,看名字就知道其本质就是每次以子节点中子树最大的(称为重儿子)为链的剖分,我们称重链上的边叫重边,其他都叫轻边 阅读全文
posted @ 2026-02-26 22:11 WangNoNo 阅读(7) 评论(0) 推荐(0)
摘要: 随机化 阅读全文
posted @ 2025-12-20 13:04 WangNoNo 阅读(27) 评论(0) 推荐(0)
摘要: abc435_f 不理解为什么都不会,其实挺简单的。 思路 首先,猫一开始在最高点,考虑我下一步有意义的操作只有撤掉最高的塔(若撤掉别的塔,对猫没有任何影响,只会减小答案)。 考虑撤掉 \([l,r]\) 最高塔(位置\(P\))后的两种情况 猫跳到左边最高塔(位置\(p_l\)),这步跳跃对答案贡 阅读全文
posted @ 2025-12-06 22:06 WangNoNo 阅读(43) 评论(0) 推荐(0)