摘要: 题目意思: 需要在元素互不相同的数列 \(a\) 中选出一个长度为 \(m\) 的元素互不相邻的子列,使得子列的极差最小。 做法 我们知道,对于一组数列,我们只需知道它的最大值和最小值,就可以得到它的极差。那么我们可以将数字从小到大排序,固定最小值,寻找最优的最大值,当最小值和最大值的位置固定了,那 阅读全文
posted @ 2023-10-09 21:12 xzhiflow 阅读(18) 评论(0) 推荐(0)
摘要: 汉诺塔(河内塔)题解 我们定义 \(T_n\) 为根据规则将 \(n\) 个圆盘从一根柱子移动到另一根柱子的最少移动步数,按照这样的定义,本道题的答案实际上就是 \(T_n\)。 通过手动模拟,可得到 \(T_1=1,T_2=3\)。同时显然有 \(T_0=0\),即表示 \(0\) 个圆盘根本无需 阅读全文
posted @ 2023-10-09 21:12 xzhiflow 阅读(109) 评论(0) 推荐(0)
摘要: 问题大意: 从围成标有记号 \(1\) 到 \(n\) 个人开始,每隔一个删去一个人,直到最后只有一个人幸存下来。例如 \(n=10\) 的起始图形: 删除的顺序是:\(2,4,6,8,10,3,7,1,9\) ,最后 \(5\) 幸存下来。 解决: 我们设对于有 \(n\) 个人的环,最终幸存者编 阅读全文
posted @ 2023-10-09 21:11 xzhiflow 阅读(108) 评论(0) 推荐(0)
摘要: 题目 先将 \(a[i]\) 离散化。 设 \(f[i]\) 表示以数字 \(i\) 结尾的上升子序列数量。 则有 \(f[i]=\sum_{j=1}^{i-1}f[j]\)。 考虑用线段树实时维护 \(f[j]\),就可以 \(logn\) 查询。 扫一遍整个序列,因为不能算重复,所以 \(ans 阅读全文
posted @ 2023-10-09 21:11 xzhiflow 阅读(24) 评论(0) 推荐(0)
摘要: 题目传送门 看到异或最大值,根据套路不妨考虑 \(0-1 trie\)。 通过 \(trie\) 找到异或值最大的点对 \((x,y)\)。那么除了 \((x,y)\) 到 \(1\) 路径上的点之外,其他的点的答案就是 \((x,y)\) 的异或值。 接下来考虑怎么算出这 \((x,y)\) 到 阅读全文
posted @ 2023-10-09 21:09 xzhiflow 阅读(31) 评论(0) 推荐(0)
摘要: 题目传送门 先考虑没有区间限制怎么做,即执行完所有操作在询问全局和。用 \(set\) 维护连续段,就是珂朵莉树,写个模板即可。 加上区间限制呢?先将询问按照 \(r\) 排序。又因为还要维护每个 \(l\),就在颜色段上在记录加入时间。我们在时间维开个数据结构,简单的树状数组即可。时间复杂度 \( 阅读全文
posted @ 2023-10-09 21:09 xzhiflow 阅读(14) 评论(0) 推荐(0)