随笔分类 -  题解

题解
摘要:可爱捏 题意 给出 \(n\) 个整数 \(a_i(1\le i\le n)\)。 求最多选出多少个数,使她们两两的乘积不为完全立方数。 \(n\le 10^5,a_i \le 10^5\)。 思路 可以先将 \(a_i\) 分解质因数,将所有指数 \(\bmod 3\),两个数相乘为完全平方数即对 阅读全文
posted @ 2024-11-15 16:45 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:马 题意 有 \(n\) 个数,初始全为 \(1\)。有 \(3\) 种操作: 将任意一个数 \(a \leftarrow a+50\); 将任意一个数 \(a \leftarrow a + 20\); 将任意一个数 \(a \leftarrow a \times 2\)。 给出每种操作的个数,你可 阅读全文
posted @ 2024-11-15 16:04 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:[NOIP 2024 模拟12]序列 题意 给出长度为 \(n\) 的序列 \(a\),每次操作给出 \(l,r,k\),把 \([l,r]\) 进行 \(k\) 次循环位移。 每次操作结束后查询整个序列是否存在三元上升子序列,即是否存在 \(i<j<k,a_i<a_j<a_k\)。 思路 区间循环 阅读全文
posted @ 2024-11-12 21:46 maniubi 阅读(15) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 80 (CF1288) A. Deadline 题意 给出正整数 \(n,d\),求不等式 \(x+\lceil \frac{d}{x+1}\rceil \le n\) 是否有非负整数解。 思路 先不考虑上取整, \[x+ \frac{d}{ 阅读全文
posted @ 2024-11-11 22:50 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:矩阵游戏 题意 给出一个 \(n\) 行 \(m\) 列的矩阵,进行恰好 \(k\) 次操作。 每次操作为选择一行或一列,分数为该行/列的和,操作结束后该行/列整体减去 \(p\)。 求最大分数。 思路 先有一个错误的贪心,即每次选择行和列中最大的一个操作,但这样有下面的 hack: 1 4 4 1 阅读全文
posted @ 2024-11-04 21:19 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:难题 题意 定义 \(f(i)\) 为非 \(i\) 因数的最小正整数,给出 \(n\),求 \(\sum_{i=1}^{n} f(i) \bmod 10^9+7\)。 思路 显然 \(f(i) \ge 2\)。 若 \(f(i)=x\),则 \(f(i)\) 一定为 \(\text{lcm}(1, 阅读全文
posted @ 2024-11-04 20:53 maniubi 阅读(12) 评论(0) 推荐(0) 编辑
摘要:路程 题意 构造一个点数不超过 \(18\),边数不超过 \(45\) 的有向无环图,满足: 入度为 \(0\) 的点只有 \(1\),出度为 \(0\) 的点只有 \(114\); 从 \(1\) 到 \(114\) 的所有路径的边权和恰好为 \([0,n]\)。 思路 先想到可以把每个数二进制拆 阅读全文
posted @ 2024-11-04 20:28 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:倍增求后缀数组 1. 一些定义 后缀 \(i\):子串 \([\text{len}(S)-i+1,\text{len}(S)]\); \(\text{SA}(i)\):排名为 \(i\) 的后缀; \(\text{rank}(i)\):后缀 \(i\) 的排名,\(\forall i>n,\text 阅读全文
posted @ 2024-10-31 21:22 maniubi 阅读(23) 评论(0) 推荐(0) 编辑
摘要:字符串大师 题意 一个串 \(T\) 是 \(S\) 的循环节,当且仅当存在正整数 \(k\),使得 \(S\) 是 \(T^k\) (\(T\) 重复 \(k\) 次)的前缀。 给出字符串 \(S\) 每个前缀的最短循环节,求出字典序最小的 \(S\)。 思路 记字符串 \(S\) 的最短循环节为 阅读全文
posted @ 2024-10-31 11:44 maniubi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:区间推平,区间查询循环节 题意 给定一个字符串 \(s\) , 请你支持两种操作: \(1, l, r, c\):将 \([l,r]\) 之间的字符改为 \(c\)。 \(2, l, r, d\):询问 \([l,r]\) 之间是否有长度为 \(d\) 的循环节,有输出 YES,否则输出 NO。 思 阅读全文
posted @ 2024-10-30 19:13 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:消消乐 题意 在一个网格图中,有两种功能方块,一种可以引爆同一行的功能方块,一种可以引爆同一列的。 求最少引爆多少个功能方块能消除所有功能方块。 思路 先想到建图,每个横向的功能方块向同一行的功能方块连有向边,每个竖向的功能方块向同一列的功能方块脸有向边,最后缩点求出入度为 \(0\) 的点的个数即 阅读全文
posted @ 2024-10-16 21:52 maniubi 阅读(9) 评论(0) 推荐(0) 编辑
摘要:观景房 题意 给出若干个矩形,所有矩形组合形成的图形包含了若干条水平线。 你可以选出若干条水平线,必须满足高度先上升后下降,求选出的水平线长度和的最大值。 思路 先考虑如何求出所有水平线的高度和长度,观察下面的图片。 每个位置的水平高度就是覆盖这个位置的矩形高度最大值。 我们就需要一个数据结构支持以 阅读全文
posted @ 2024-10-16 21:48 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:黑暗城堡 题意 给出一张 \(n\) 个点 \(m\) 条边的图,求该图有多少棵生成树满足生成树上每个点 \(x\) 到 \(1\) 的最短距离 \(S_x\) 等于原图 \(x\) 到 \(1\) 的最短距离 \(D_x\),答案 \(\bmod 2^{31}-1\)。 思路 先考虑如何求出一棵满 阅读全文
posted @ 2024-10-16 21:47 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:[JOI 2013 Final]现代豪宅 题意 给出一个 \(n\times m\) 的网格图,每两个格子之间有一扇门。 初始上下方向的门都是开着的,左右方向的门是关着的。 有一些格子有按钮,可以把打开的门关上,关上的门打开。 走一步需要一秒,按按钮需要一秒,求从 \((1,1)\) 到达 \((n 阅读全文
posted @ 2024-10-10 15:48 maniubi 阅读(3) 评论(0) 推荐(0) 编辑
摘要:[JOI 2013 Final]搭乘 IOI 火车 题意 给出两个由 \(\text{OI}\) 组成的字符串 \(S,T\)。 可以删除每个字符串的前缀和后缀。 每次从剩下部分的第一位取出一个字符放到新的字符串中。 要求新字符串必须以 \(\text{I}\) 开头结尾,相同的字符不能相邻,求新字 阅读全文
posted @ 2024-10-10 15:47 maniubi 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[JOI 2013 Final]彩灯 题意 给出一个 \(01\) 序列,可以把一段区间反转。 求反转后序列最长的交替子段,即 \(010101 \ldots\) 或 \(101010 \ldots\)。 思路 首先发现一个性质,反转的一定是一段交替子段。 因为反转不交替子段对答案的贡献不优。 枚举 阅读全文
posted @ 2024-10-10 15:47 maniubi 阅读(12) 评论(0) 推荐(0) 编辑
摘要:[JOI 2013 Final]JOIOI 塔 题意 给出一个由 \(\text{JOI}\) 组成的字符串,可从中取出一些子序列。 求最多取出多少 \(\text{IOI}\) 和 \(\text{JOI}\)。 思路 若答案 \(x\) 可行,则所有 \(y<x\) 均可行, 若答案 \(x\) 阅读全文
posted @ 2024-10-10 15:46 maniubi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:[JOI 2024 Final] 建设工程 2 题意 给出一张图和 \(S\),\(T\)。可在任意两点 \(u,v(u<v)\) 之间添加一条长度为 \(L\) 的边(只可添加一次)。 求有多少种添加方案使得 \(S\) 到 \(T\) 的最短路长度 \(\le K\)。 思路 首先,若 \(S\ 阅读全文
posted @ 2024-10-06 19:16 maniubi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:[JOI 2024 Final] 室温 题意 给出一个长度为 \(n\) 的序列 \(a\),给出数 \(T\)。 可以进行若干次操作,每次操作可以任选数 \(a_i\),将 \(a_i \leftarrow a_i - T\)。 可以选定一个数 \(t\),使得操作完成后 \(\max |a_i- 阅读全文
posted @ 2024-10-06 18:46 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:移动 题意 有一个 \(n\times m\) 的网格图,有 \(k\) 个点不能走。 每次移动可以向右或向下走,只能走两次。 求能走到的点的个数。 思路 可以发现只能是从第一排向下走或从第一列向右走。 统计上下走能到的点和左右走能到的点,减去重复的即可。 扫描 \(x\),使用线段树维护 \(y\ 阅读全文
posted @ 2024-09-29 19:16 maniubi 阅读(6) 评论(0) 推荐(0) 编辑