Svingland
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

CF2148G 题解

太困了,所有数据结构都忘光了,所以这个做法没什么数据结构。 首先我们发现,假如 ,考虑将 重排后的数组 满足 。显然,一个序列的 是非单调递减的,因此整个序列的 在第 项之后就没有变过。考虑将所有数除掉整个序列的 ,这样前 项的 就非 而后面的就全是 。 显然我们可以考虑枚举前 项的 ,如果有 个数整除这个 ,那我们就把这 个数放前面,答案至少为 。因此考虑维护一个数组 ,表
2025-09-14
OI > 题解

CF2140A Shift Sort 题解

本文用 表示轮换位置 的元素(即,),用 表示交换位置在 的元素。 假如我们要进行的轮换是 。由鸽巢原理可知, 三个数中必有两个数是相同的元素。假如 ,我们可以将这个轮换写成 的形式。注意这个轮换和原来的轮换实际上是一个,相同的位置最终到的位置是不变的(可以代入试一下), 的情况类似。因此任意轮换都可以写成 满足 的形式。 轮换有一个性质,,证明方法就是每个元素都代进去试一下。由于
2025-09-11
OI > 题解

AT_abc422_f 题解

本文记载了我看到这题时抽象的思路历程。 看到这个题目,首先花了 分钟否决掉了直接跑最短路的想法,因为你不好定义两个结果的序关系。 然后,开始考虑一种经典的优化方式,费用提前计算。注意到每个点的贡献和之后的边数有关,因此考虑 表示点 到第 个点,距离最后一个点距离为 的最小代价。那么转移的代价就是这个点的点权乘上距离。但是,我们发现,这是一张无向图,我们不好找到一个很好的顺序来转移(这对吗
2025-09-07
OI > 题解

U603203 旅行题解

原题链接。 写模拟赛的一道 F 题时想到的题目。但是这道题解法和那道题完全不同。 容易想到线段树优化建图,但是此题需要额外处理一个边权不同的问题。注意到这个距离函数有个美好的性质,对于任意 ,满足 。 我们考虑把一个点拆成两个点, 和 ,分别表示从左边和从右边到达 点。在这两个点之间连一条边权为 的双向边。 考虑一个点向右侧区间连边的情况。我们把边权拆成若干份。一个点 向线段树上节点 连边
2025-08-24
OI > 题解

AT_abc418_f We're teapots 题解

首先可以将 与上一个非负的位置做差,得到这一段咖啡的数量。我们考虑维护每一段的数量,然后将这些段拼起来。我们记 表示以 开始的段,第一个位置和最后一个位置是否是咖啡的方案数。 我们先考虑从 个位置里选出 个不相邻的位置的方案数。考虑换个角度,不是从 个里面选出 个,而是将 个位置插入到剩下 个位置中间。 个位置之间有 个空位,因此答案就是 。 假如我们要钦定开头的位置必须是茶壶
2025-08-17
OI > 题解

CF2131H Sea, You & copriMe 题解

题意简述: 给定 个数的数组 (),从中选出不相交且互质的两对数或输出无解。 首先不难想出一个 的解法,那就是枚举每对数尝试找到一组解。但是你注意到一个数需要花 的时间来枚举,如果没找到一组解这个时间就是十分浪费的。 考虑如何快速判断在数组里一个数是否在数组里有与其互质的数,有的话再枚举。这样最多只要枚举 遍。考虑将原问题强化,计算一个数在数组里与其互质的数的个数。 我们又注意到前
2025-08-11
OI > 题解

从“以管理员打开”简要讲述 Linux 的凭据

本文主要讲解传统的 Unix 凭据和能力(Caps)。 众所周知,GNOME 的文件应用里有以管理员打开这个选项。点击后,经过一次 polkit 鉴权就可以访问原本需要 root 才能访问的目录。这是怎么做到的? 查看一下 /usr/share/polkit-1/actions 目录,发现 nautilus 的文件操作 action 来自 org.gtk.vfs.file-operations.p
2025-07-02
技术

当你设置语言的时候,你的 DE 到底做了什么?

今天突然想起来一个问题。众所周知,在 GNOME 里有个设置语言的选项。那么,GNOME 到底是做了什么来设置我的语言的呢? 猜想 :设置环境变量。然而 ~/.config/ 下并没有 locale.conf。在其他地方也没有。于是我去翻了下源码。 在 gnome-control-center 仓库中的 panels/system/users/cc-user-page.c 里有一个 languag
2025-06-30
技术

whk 抽象错误集锦

数学 坐标是否写反 检查数据是否抄错( 抄成 了,居然还神奇的算出来一个整十数)。 漏题。 其一:漏了一整问 其二:化简并求值,然而化简玩忘记求值了 计算错误 其一:偷吃系数: 其二:漏抄符号。(点名表扬负号 其三:移项,但是没有变号。 其四:多抄或漏抄了几个 。 忘了 没有意义。( 有意义的范围是 ) 算了上界,但是没算下界。 同大中间找?(, 的范围是 我而不是 ) 格子输错
2025-06-24

线段树小结

本文主要是对线段树在序列上的应用的简单讲解,并不涉及复杂的线段树应用。 从分治说起 众所周知,分治是一种常见的算法。序列上的分治通常是这种形式: 12345result solve(int l, int r) { int mid = (l + r) >> 1; auto resl = solve(l, mid), resr = solve(mid + 1, r); r
2025-05-17
OI
#数据结构
123

搜索

Hexo Fluid

本博客所有作品在 CC BY-NC 4.0协议 下提供