摘要: 题意 求题目中给出的函数值。 分析 Way 1 直接模拟,由于题目有 spj,所以可以用 c++ 自带函数算。虽然没有 \(\cot\) 函数,但是可以用 \(\frac{1}{\tan}\) 代替。 c++ 没有自带 \(\pi\),但是可以用 \(\arccos(-1)\) 表示。 Way 2 阅读全文
posted @ 2024-12-20 15:36 run-away 阅读(44) 评论(0) 推荐(0)
摘要: 题意 给定 \(n\) 个整数 \(a_i\) 和 \(q\) 次形如 \(l\ x\) 的提问,每次提问输出 \(a_1\sim a_l\) 中有多少个子序列满足异或和为 \(x\)。 分析 很明显的线性基,因为数组开 \(20n\) 不会炸,所以可以直接建立 \(n\) 个线性基,记录 \(a_ 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(11) 评论(0) 推荐(0)
摘要: 题意 定义 \(1\) 阶“刺猬图” 为一个点度数 \(\ge3\),其他点度数为 \(1\) 的树。 把一个 \(1\) 阶“刺猬图” 中所有度数为 \(1\) 的点替换成以它为根的 \(1\) 阶“刺猬图”,这样的树称作 \(2\) 阶“刺猬图”。 以此类推。 给定一棵 \(n\) 个点的树和整 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(20) 评论(0) 推荐(0)
摘要: 题意 最开始有一个空的数 \(s\),给定 \(n\) 组整数 \(a,l\),表示把 \(a\) 复制 \(l\) 次再粘贴到 \(s\) 后,求最终 \(s\) 对 \(b\) 取模的值。 分析 考虑用 \(s_{i}\) 表示第 \(i\) 次操作后的值,我们只需要模拟每一次操作就行了,但是这 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(10) 评论(0) 推荐(0)
摘要: 题意 最开始有 \(a\) 个金币,每次你可以选择 \(y\in[1,a]\) 个金币交给赌场赌博,赌场决定胜负(反正不是你决定)。如果胜,就获得 \(ky\) 个金币;否则获得 \(0\) 个金币。赌场保证你最多连输 \(x\) 次。 有 \(t\) 组询问,每次给出 \(k,x,a\),求是否能 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(14) 评论(0) 推荐(0)
摘要: 题意 一个长 \(h\) 宽 \(w\) 的地图,# 代表陆地,. 代表冰面,如果人在陆地上可以向任何方向转向,否则只能一直滑到边缘然后在边缘选择转向。 现在可以花费 \(1\) 的代价把一块冰面改为陆地,求最少花费多少代价使得人从任何地方出发都可以滑到所有地方。 分析 显然只会选择垂直转向,因为掉 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(9) 评论(0) 推荐(0)
摘要: 题意 给一个字符串,求最长的出现了两次以上的子串长度。 分析 二分长度,枚举起点后记录哈希值出现次数即可。 单次复杂度 \(O(n\log n)\)。 Code #include<bits/stdc++.h> typedef long long ll; typedef unsigned long l 阅读全文
posted @ 2024-12-20 15:34 run-away 阅读(9) 评论(0) 推荐(0)
摘要: 题意 给 \(n\) 个字符串,求最长的在超过 \(\lfloor\frac{n}{2}\rfloor\) 个串里出现的子串,若有多个按字典序排序后输出;若不存在输出 ?。 分析 不理解这么水的题为什么要用后缀数组。 预处理每个串的 Hash 值,二分子串长度,变成判定存不存在的问题。 枚举每个串的 阅读全文
posted @ 2024-12-20 15:33 run-away 阅读(11) 评论(0) 推荐(0)
摘要: 题意 平面上有 \(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 阅读全文
posted @ 2024-12-20 15:33 run-away 阅读(13) 评论(0) 推荐(0)
摘要: 题意 给 \(n\) 个长度为 \(2\),互不相同,且只由大写字母组成的字符串 \(s\)。 你需要构造出一个字符串数组 \(t\),使得对于每一个 \(s_i\),存在 \(t_j\) 使得 \(s_i\) 为 \(t_j\) 的一个连续子串。并且对于每一个 \(t_j\),它的任意一个连续长度 阅读全文
posted @ 2024-12-20 15:31 run-away 阅读(26) 评论(0) 推荐(0)
摘要: 题意 给定一张无向图,每个点点权为 A 或 B。求对于每一个由 A 和 B 组成的字符串 \(S\),是否在图中存在一条路径满足路径上的点权连在一起为 \(S\),可以重复经过任意一个点和任意一条边。 分析 显然我们需要找到一个环,让路径不断重复在上面走。 考虑一个满足条件的最小环,原图只要存在这种 阅读全文
posted @ 2024-12-20 15:31 run-away 阅读(13) 评论(0) 推荐(0)
摘要: 题意 给 \(n\) 个整数 \(a_i\),可以对它们进行若干次操作:每次可以选择一个整数 \(k\) 和数组中的一些数,花费 \(2^k\) 的代价,给这些数赋值为原值对 \(k\) 取模的值。 求出最小的花费,使得数组 \(a\) 变成数组 \(b\),如果不存在这种方案,输出 \(-1\)。 阅读全文
posted @ 2024-12-20 15:28 run-away 阅读(16) 评论(0) 推荐(0)
摘要: 题意 给定一个 \(n\) 个点 \(m\) 条边的有向图,每个点都有点权,求一条从 \(S\) 到 \(E\) 的路径,使路径经过的点权值之和最大。 可以多次经过一条边或者一个点,但每个点的权值最多计算一次。 分析 和 P3387 很像。 对原图缩点后得到一张 DAG,然后在图上跑类似最短路,实际 阅读全文
posted @ 2024-12-20 15:26 run-away 阅读(8) 评论(0) 推荐(0)
摘要: 题意 给定一个序列 \(a_i\) ,记其前缀和序列为 \(s_i\) ,有 \(q\) 个询问,每次单点修改,询问是否存在一个 \(i\) 满足 \(a_i=s_i−1\)​ ,有多解输出任意一个,无解输出 \(−1\) 。 分析 考虑一个很暴力的解法,每次修改都直接在原数组上改,然后再遍历一遍寻 阅读全文
posted @ 2024-12-20 15:23 run-away 阅读(8) 评论(0) 推荐(0)
摘要: 题意 给定 \(n\),构造一个长度为 \(n\) 的数组,满足任意两个数不互质且不相同,所有数的最大公因数为 \(1\),且每个数最大为 \(10000\)。 分析 这种限制了数的大小,不限制大小和位置关系的构造题有一个套路。 先找出几个最小的满足条件的数,然后找出延申的条件。 对于本题,当 \( 阅读全文
posted @ 2024-12-20 15:22 run-away 阅读(12) 评论(0) 推荐(0)
摘要: 题意 一张未知的 \(n\) 个点,\(m\) 条边的无向连通图。 从 \(1\) 号点开始,每次交互库给出与它相连的点编号,其中选出一个往下走。 在 \(2n\) 次交互内到达 \(n\) 号点。 分析 看到 \(2n\) 的次数,可以想到搜索。 遍历一遍的次数是 \(n\),这一轮可以把图建出来 阅读全文
posted @ 2024-12-20 15:21 run-away 阅读(10) 评论(0) 推荐(0)
摘要: 题意 最开始有一个为零的数 \(x\)。 你可以花费一定代价在 \(x\) 后面加入一个 \(0\sim9\) 的数字。 给定你拥有的钱和加入每一个数字的代价,求能组合出的最大数。 分析 考虑贪心。 首先,不管是什么数字,较长的数字肯定比较短的数字大。 所以找出代价最小的数,先求出最大长度。 然后考 阅读全文
posted @ 2024-12-20 15:20 run-away 阅读(6) 评论(0) 推荐(0)
摘要: 题意 给 \(n\) 个点,\(m\) 条边的有向图,除起点和终点,其他点都只能经过一次,求两条从起点到终点的路径使得长度和最小。 分析 从较小的数据范围,只能经过一次的限制可以想到使用网络流。 因为要求最短路径,可以使用费用流求解。 限制一个点经过次数的经典套路是拆点,把点 \(v\) 拆成左部点 阅读全文
posted @ 2024-12-20 15:18 run-away 阅读(25) 评论(0) 推荐(0)
摘要: 题意 有 \(n\) 个豌豆射手,\(m\) 个僵尸。 对于第 \(i\) 个僵尸,如果任意一个豌豆射手在 \(l_i\sim r_i\) 的时间里持续攻击它,僵尸 \(i\) 就会被杀死。 每一个豌豆射手在同一时间只能攻击一个僵尸,求最少无法杀死多少僵尸。 分析 首先有一个很显然的贪心,就是优先攻 阅读全文
posted @ 2024-12-20 15:17 run-away 阅读(15) 评论(0) 推荐(0)
摘要: 题意 有 \(c\) 个孩子,\(n\) 个邻居,给出每个邻居会给孩子们的糖果数 \(a_i\)。 求出几个邻居的编号,使得他们给的糖果数总和能让孩子们平分。 分析 题面里给了一个很重要的条件 \(c\le n\)。 设 \(s_i=\sum\limits_{i=1}^{n}a_i\),由鸽巢原理, 阅读全文
posted @ 2024-12-20 15:17 run-away 阅读(5) 评论(0) 推荐(0)