随笔分类 - OIの题解
「CF1284B」 New Year and Ascent Sequence
摘要:题意 给 \(n\) 个序列,在其中选择可以相同的两个首尾相连,可以得到 \(n^2\) 种方案。 问其中多少至少有一个顺序对。 分析 考虑用总数减去不合法的数量,即求不含有顺序对的数量。 这种序列就是单调不增序列,要求两个子序列也是单调不增,这在输入时就可以 \(O(len)\) 判断。 因为大序
「CF757E」 Bash Plays with Functions
摘要:题意 设 \(\omega(n)\) 表示 \(n\) 的质因子个数,定义 \[\begin{equation} f_r(n)=\left\{ \begin{aligned} &\sum\limits_{p\cdot q=n} [\gcd(p,q)=1] ,& r=0 \\ &\sum\limits
「NOIP2018 普及组」 龙虎斗
摘要:题意 一条直线上有 \(n\) 个兵营,相邻的两个点距离为 \(1\),第 \(i\) 个点上初始有 \(c_i\) 个工兵。 第 \(m\) 个兵营左侧为 \(1\) 号势力,右侧为 \(2\) 号势力,它本身不属于任何势力。 定义一个兵营的“气势”为它的工兵数乘它与 \(m\) 号兵营的距离。
「SHUPC 2024」 函数
摘要:题意 求题目中给出的函数值。 分析 Way 1 直接模拟,由于题目有 spj,所以可以用 c++ 自带函数算。虽然没有 \(\cot\) 函数,但是可以用 \(\frac{1}{\tan}\) 代替。 c++ 没有自带 \(\pi\),但是可以用 \(\arccos(-1)\) 表示。 Way 2
「CF959F」 Mahmoud and Ehab and yet another xor task
摘要:题意 给定 \(n\) 个整数 \(a_i\) 和 \(q\) 次形如 \(l\ x\) 的提问,每次提问输出 \(a_1\sim a_l\) 中有多少个子序列满足异或和为 \(x\)。 分析 很明显的线性基,因为数组开 \(20n\) 不会炸,所以可以直接建立 \(n\) 个线性基,记录 \(a_
「CF1067B」 Multihedgehog
摘要:题意 定义 \(1\) 阶“刺猬图” 为一个点度数 \(\ge3\),其他点度数为 \(1\) 的树。 把一个 \(1\) 阶“刺猬图” 中所有度数为 \(1\) 的点替换成以它为根的 \(1\) 阶“刺猬图”,这样的树称作 \(2\) 阶“刺猬图”。 以此类推。 给定一棵 \(n\) 个点的树和整
「ARC020C」 A mod B Problem
摘要:题意 最开始有一个空的数 \(s\),给定 \(n\) 组整数 \(a,l\),表示把 \(a\) 复制 \(l\) 次再粘贴到 \(s\) 后,求最终 \(s\) 对 \(b\) 取模的值。 分析 考虑用 \(s_{i}\) 表示第 \(i\) 次操作后的值,我们只需要模拟每一次操作就行了,但是这
「CF1929C」 Sasha and the Casino
摘要:题意 最开始有 \(a\) 个金币,每次你可以选择 \(y\in[1,a]\) 个金币交给赌场赌博,赌场决定胜负(反正不是你决定)。如果胜,就获得 \(ky\) 个金币;否则获得 \(0\) 个金币。赌场保证你最多连输 \(x\) 次。 有 \(t\) 组询问,每次给出 \(k,x,a\),求是否能
「ARC112D」 Skate
摘要:题意 一个长 \(h\) 宽 \(w\) 的地图,# 代表陆地,. 代表冰面,如果人在陆地上可以向任何方向转向,否则只能一直滑到边缘然后在边缘选择转向。 现在可以花费 \(1\) 的代价把一块冰面改为陆地,求最少花费多少代价使得人从任何地方出发都可以滑到所有地方。 分析 显然只会选择垂直转向,因为掉
「UVA1223」 Editor
摘要:题意 给一个字符串,求最长的出现了两次以上的子串长度。 分析 二分长度,枚举起点后记录哈希值出现次数即可。 单次复杂度 \(O(n\log n)\)。 Code #include<bits/stdc++.h> typedef long long ll; typedef unsigned long l
「UVA11107」 Life Forms
摘要:题意 给 \(n\) 个字符串,求最长的在超过 \(\lfloor\frac{n}{2}\rfloor\) 个串里出现的子串,若有多个按字典序排序后输出;若不存在输出 ?。 分析 不理解这么水的题为什么要用后缀数组。 预处理每个串的 Hash 值,二分子串长度,变成判定存不存在的问题。 枚举每个串的
「CF1517G」 Starry Night Camping
摘要:题意 平面上有 \(n\) 个点,给出点的坐标和权值 \(w_i\)。你需要删去一些点,使得对于每个点 \((x,y)\),不存在另三个点 \((x_1,y_1),(x_2,y_2),(x_3,y_3)\) 满足: 对于所有 \(j\in\{1,2,3\}\),\(|x_j−x|,|y_j−y|\l
「ABC374G」 Only One Product Name
摘要:题意 给 \(n\) 个长度为 \(2\),互不相同,且只由大写字母组成的字符串 \(s\)。 你需要构造出一个字符串数组 \(t\),使得对于每一个 \(s_i\),存在 \(t_j\) 使得 \(s_i\) 为 \(t_j\) 的一个连续子串。并且对于每一个 \(t_j\),它的任意一个连续长度
「AGC027C」 ABland Yard
摘要:题意 给定一张无向图,每个点点权为 A 或 B。求对于每一个由 A 和 B 组成的字符串 \(S\),是否在图中存在一条路径满足路径上的点权连在一起为 \(S\),可以重复经过任意一个点和任意一条边。 分析 显然我们需要找到一个环,让路径不断重复在上面走。 考虑一个满足条件的最小环,原图只要存在这种
「AGC022C」 Remainder Game
摘要:题意 给 \(n\) 个整数 \(a_i\),可以对它们进行若干次操作:每次可以选择一个整数 \(k\) 和数组中的一些数,花费 \(2^k\) 的代价,给这些数赋值为原值对 \(k\) 取模的值。 求出最小的花费,使得数组 \(a\) 变成数组 \(b\),如果不存在这种方案,输出 \(-1\)。
「SP14887」 GOODA
摘要:题意 给定一个 \(n\) 个点 \(m\) 条边的有向图,每个点都有点权,求一条从 \(S\) 到 \(E\) 的路径,使路径经过的点权值之和最大。 可以多次经过一条边或者一个点,但每个点的权值最多计算一次。 分析 和 P3387 很像。 对原图缩点后得到一张 DAG,然后在图上跑类似最短路,实际
「CF992E」 Nastya and King-Shamans
摘要:题意 给定一个序列 \(a_i\) ,记其前缀和序列为 \(s_i\) ,有 \(q\) 个询问,每次单点修改,询问是否存在一个 \(i\) 满足 \(a_i=s_i−1\) ,有多解输出任意一个,无解输出 \(−1\) 。 分析 考虑一个很暴力的解法,每次修改都直接在原数组上改,然后再遍历一遍寻
「ARC118C」 Coprime Set
摘要:题意 给定 \(n\),构造一个长度为 \(n\) 的数组,满足任意两个数不互质且不相同,所有数的最大公因数为 \(1\),且每个数最大为 \(10000\)。 分析 这种限制了数的大小,不限制大小和位置关系的构造题有一个套路。 先找出几个最小的满足条件的数,然后找出延申的条件。 对于本题,当 \(
「ABC305F」 Dungeon Explore
摘要:题意 一张未知的 \(n\) 个点,\(m\) 条边的无向连通图。 从 \(1\) 号点开始,每次交互库给出与它相连的点编号,其中选出一个往下走。 在 \(2n\) 次交互内到达 \(n\) 号点。 分析 看到 \(2n\) 的次数,可以想到搜索。 遍历一遍的次数是 \(n\),这一轮可以把图建出来
「ABC257E」 Addition and Multiplication 2
摘要:题意 最开始有一个为零的数 \(x\)。 你可以花费一定代价在 \(x\) 后面加入一个 \(0\sim9\) 的数字。 给定你拥有的钱和加入每一个数字的代价,求能组合出的最大数。 分析 考虑贪心。 首先,不管是什么数字,较长的数字肯定比较短的数字大。 所以找出代价最小的数,先求出最大长度。 然后考