随笔分类 - 题解
摘要:前置知识 后缀数组; height 数组。 题目大意 给出一个字符串 ,每次查询 若干个后缀两两之间的 LCP 和,答案对 取模。 解题思路 首先对于 求出 数组和 数组,接下来我们可以对所有后缀在
阅读全文
摘要:解题思路 因为要求 , 是 的两个最大的因数(不包括本身),那么我们可以先找出 和 的最小公倍数,然后和 比较,如果和 相同,那么我们再找到 和 的最小的非 因数,和 相乘就是答案了。 AC 代码 #include<
阅读全文
摘要:解题思路 一个很显然的结论: 当且仅当所有点的流量之和为 时,存在解。 在得出这个结论后,我们可以先计算出 的值,然后判断一下是否为 ,如果不为 ,那么直接输出 Impossible 即可。 接下来讨论为
阅读全文
摘要:解题思路 两个显然的结论: 将所有生物 的值按照从大到小的顺序排序后,将正值部分全部进行 操作(如果可以的话),这样是最优的; 将所有的 操作全部在同一生物上进行是最优的,证明如下(假设只有两个,多个同样成立): 令 $f(i,x)=hp_i\times 2
阅读全文
摘要:解题思路 其实题目翻译中已经给出一些提示了。 显然,对于式子 ,我们稍加变形就可以得到 $\displays
阅读全文
摘要:题目大意 两个环呈包含关系,每个环上的元素都不相同,两个环可以自由旋转,问怎么使得重合部分最多。 解题思路 显然,我们对于环 记录它的每一个元素最少需要转多少圈才会和 中的某一元素重合。然后依次枚举每一个可能旋转的位置,看一下有多少个 可以重合。 AC 代码 #inclu
阅读全文
摘要:解题思路 我们将题意转化一下: 求 的反转后的字符串的一个最长前缀,使其满足可以通过 得到。 显然,交换不会改变每种字符的数量。那么,我们先把 求出其中 的数量 ,和 的数量 ,然后将 每位反转( 变 ),然后从第一位开始,
阅读全文
摘要:解题思路 很简单的一道题,因为每个 A 只能向后移,每个 B 只能向前移,所以很容易想到,对于每一段连续的 A,直接往后移就是答案。但是因为每个坐标只能选择一次,那么,我们考虑用栈来维护这一过程: 如果当前位置上是 A 那么直接入栈; 如果当前位置上是 B 那么 ,其中
阅读全文
摘要:题目大意 已知有一个长度为 的正整数序列 ,现在你可以做若干次以下操作,使得 单调不下降: 选择一个 ; 选择一个整数数 ; 将 分成两个正整数 和 并重新插入序列中,插入规则如下: 设操作前
阅读全文
摘要:解题思路 一眼丁真,模拟退火,那么具体怎么做呢,先来看看我们已经知道的结论: 因为每条线路与所乘坐的线路最多只有两个换乘点,因此可以知道,这些线路可以看作若干条曲线线段,由此,我们可以把题意转化一下: 已知有 条曲线与一条直线相交,这些曲线和直线没有重合的部分且交点处只有两条线,不存在封闭曲
阅读全文
摘要:解题思路 考虑建图,很容易想到放置后的仙人掌需满足存在一条从第一列到第 列的路径,那么我们的最优答案就是一条从第 列到第 列的最短路,其中,到达一个已经有仙人掌的点花费 的代价,到达一个不存在仙人掌的点花费 的代价。我们可以使用双端队列 bfs,即边权为 $0
阅读全文
摘要:蒟蒻的第一篇黑题题解。 题目描述 Link 解题思路 模拟退火,考虑每次随机交换两个 ,然后计算当前情况下的排列的权值,如果比当前的最优解要优,那么直接更新即可,同时更新最优排列,否则的话,以一定的概率接受,但是不需要更新最优排列。然后就慢慢跑吧,蒟蒻实测跑 分钟可以获得
阅读全文
摘要:题目大意 告诉你一个由 A、B、C 三种字符组成的字符串 ,每次消除最左边的一个字符串 ABC,问最后剩下的字符串是什么。 解题思路 很简单的一道题,我们考虑用栈来维护。对于每个字符,如果是 A 或 B,那么直接进栈,否则的话,考虑当前栈顶的两个元素能否和当前的 C 共同构成一个字符串 ABC
阅读全文
摘要:前言 一道很简单的模拟退火的水题,但是因为把 l 达成了 调了一下午…… 解题思路 显然,我们每次随机出一个可能的坐标,然后检验,如果更优,那么直接更新,否则按照一定概率判断是否作为一个可能的解更新。 一些注意事项 首先,记得开 double,因为坐标可能不是整数;其次,注意更新答案的时候,
阅读全文
摘要:解题思路 显然,对于这些文件,我们可以考虑如果某一个文件夹内的所有文件都要删除,那么删除整个文件夹,否则的话,把其中需要删除的文件依次删除即可。
阅读全文
摘要:解题思路 显然,对于每一个形如 BAAAA 和 AAAAB 的串,可以分别通过操作一和操作二消除,同时获得和 A 的长度相等的金币。 那么,我们可以先预处理出每一段连续的 A 的长度,统计与 A 相邻的 B 的个数,接着对于A 的连续段进行排序,即优先消除长度大的连续段。排序后依次消除,直到没有 A
阅读全文
摘要:题目大意 本题共有 组测试数据。对于每组测试数据,首先一行读入一个整数 ,表示付费字符的数量,接下来 行每行一个字符和一个整数,表示该字符的价格,单位为美分,一美元为一百美分。接下来一个整数 ,表示文章的行数,接下来有 行字符串,构成一篇文章,请你算出整篇文章的价
阅读全文
摘要:解题思路 一道简单的模拟题。步骤如下: 循坏读入 A、B 的牌; 将两人的牌转化为数字,并插入到一个双向队列中; 进行循环,进行游戏,直到平局、有一方赢了、一直玩下去。 对于循环内部,我们分为两个部分: 判断游戏结果并输出; 进行游戏。 其中的进行游戏部分,我们每次获取两人牌堆的头牌,并进行比较,如
阅读全文