2023年10月19日
摘要: struct and class struct struct 和 class 都是由各种数据组成的集合(也叫做类),这些数据可以是整数,浮点数,字符,也可以是函数。在代码中,我们首先定义集合的名字,包含的数据类别。之后可以命名需用的集合,在主函数或者一些函数中对这些集合调用。 先对 struct 做 阅读全文
posted @ 2023-10-19 15:39 漠寒· 阅读(192) 评论(0) 推荐(0) 编辑
  2021年12月16日
摘要: 分析 根号分治题。 发现 \(p\) 是单增的,且每次至少增加 \(k\)。所以如果 \(k\) 很大,我们直接暴力跳很少的次数就能跳出去,如果确定了一个 \(k\) 值,我们可以倒序 \(O(n)\) 处理出每个位置作为起点需要跳多少次才能跳出。 如果将前后两个综合起来,在 \(k\) 大于 \( 阅读全文
posted @ 2021-12-16 15:29 漠寒· 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 分析 线段树分治呢,处理的就是这些基于时间上的物品加入删除问题,我们将所有事件离线处理,每一个询问代表一个时刻,对于每一个物品,处理它所存在的时段,概括一下就是用线段树来处理每一个物品能对哪些询问起作用。 所以线段树每一个节点就代表了一个时段,而在询问中我们通常是找某一个时间点,所以类似于标记永久化 阅读全文
posted @ 2021-12-16 15:28 漠寒· 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 分析 因为题目要求最终形状为一个凸包,所以你只要确定了要选哪些向量以及每个向量用几次,最终形成的那个多边形就固定了。 所以只需考虑最终式子是什么,得到 \(\sum_{i=1}^nx_i=0\),\(\sum_{i=1}^ny_i=0\)。然后你画出图形后会发现横纵轴的最长扩展长度就是只为正的 \( 阅读全文
posted @ 2021-12-16 15:28 漠寒· 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 分析 第一道线段树分治题祭。 线段树分治呢,处理的好像就是这些基于时间上的物品加入删除问题,我们将所有事件离线处理,每一个询问代表一个时刻,对于每一个物品,处理它所存在的时段,概括一下就是用线段树来处理每一个物品能对哪些询问起作用。 所以线段树每一个节点就代表了一个时段,而在询问中我们通常是找某一个 阅读全文
posted @ 2021-12-16 15:27 漠寒· 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 分析 这道题属于考察对于合并时不同最佳状态的讨论,我们考虑最后选出来的那三张照片位置在哪里,发现有四种情况(中间隔开处为线段树区间的 \(mid\))。 1、\(ijk\)|。 2、|\(ijk\)。 3、\(ij\)|\(k\)。 4、\(i\)|\(jk\)。 显然前两种情况就是子节点的答案,而 阅读全文
posted @ 2021-12-16 15:26 漠寒· 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 分析 做了几道分数规划题,选一些来写题解。 首先观察答案形式,就是求最终 \((\dfrac{\sum a_i'}{\sum b_i'})\geqslant ans\) 最大的 \(ans\),在转化一下形式,就是 \(\sum a_i'-ans\times b_i'\geqslant 0\)。 所 阅读全文
posted @ 2021-12-16 15:26 漠寒· 阅读(27) 评论(0) 推荐(0) 编辑
  2021年12月7日
摘要: 计算几何 最基础的东西 向量 高一的东西,不过多解释,可以理解为以 \((x,y)\) 表示一个有方向的线段 向量加减直接是 \(x,y\) 与另一个向量的 \(x,y\) 直接相加减,乘法有三种,与一个数相乘,直接 \(x,y\) 扩大为数字倍,向量间乘法都是得到一个数,分为两种,令两个向量为 \ 阅读全文
posted @ 2021-12-07 20:53 漠寒· 阅读(65) 评论(0) 推荐(0) 编辑
摘要: ##后缀数组 ###解决什么? 最基本的应用就是对一个字符串的所有后缀按照字典序进行排序,但对于最暴力的做法,在快速排序中(当然你用冒泡更暴力)\(cmp\) 函数暴力从头到尾枚举到第一位不同的位置 \(O(n^2logn)\),再一步优化的话就是二分来找到这一个位置 \(O(nlog^2n)\), 阅读全文
posted @ 2021-12-07 20:01 漠寒· 阅读(34) 评论(0) 推荐(0) 编辑
  2021年11月19日
摘要: 分析 听同学说调了很久,主页也看到好几个帖子,就来看了看,受二分误导调了很久,但显然正确性有问题,考虑对同一组数据 \(k\) 变化的影响。 显然,在删数时只会导致能删的更多,\(k\) 变小也会使删的更多,所以先读入所有的 \(k\),自大到小排序处理,这样答案单调递减,每个数就只用删一次就可以了 阅读全文
posted @ 2021-11-19 11:33 漠寒· 阅读(65) 评论(0) 推荐(0) 编辑