Ftt2333's Nest
简单转化之后用树剖维护最大后缀和即可,2 操作需要把多余的值减掉。
对于每个 都跑一遍莫队,时间复杂度是 的( 是 的种类数),记得每次跑都要重新算块长。
考虑从小到大插入数,发现能 加入的位置只有开头和 之后,状压即可。
在 F1 的基础上用矩阵快速幂优化即可。
先考虑只有一种棋子,那么每次就只移动一枚棋子。
那么我们把棋子之间的空位看成石子,那么题目就可以转化为:
那么这就是阶梯 NIM 的模板题了,可以参考 P3480 [POI2009]KAM-Pebbles。
这里来粗略的讲一下阶梯 NIM 的做法。
为了方便起见,我们把顺序换一下,改成从第 堆移动到第 堆,移到第一堆结束。
正常的 NIM 是直接把石子扔掉,然而在阶梯 NIM 中,我们可以把奇数堆看成垃圾桶。
所以阶梯 NIM 就相当于只有偶数堆的普通 NIM,那么他的 SG 值就是偶数堆个数异或起来。
形式: 对于质数 ,和非负整数 ,,有:
令:,表示 在 进制下的形式。
令:,表示 在 进制下的形式。
那么有:
对于任意质数 和 ,其中 ,满足:
根据裴蜀定理,可以知道 与 是一一对应的,因此:
最近在 zhihu 看到很多人试图和葛立恒数比大小,我就也想了想。
我想到了一个比较大的数,但是感觉肯定比葛立恒数小,但感觉挺有意思的,就分享一下。
不知道有没有人会证明。
先定义:
然后定义:
这道题直接 的题解很多都是错的并且没有给出证明。
首先这道题等价于求 。
可以直接用高精度的矩阵快速幂,但是这里不讲。
不难发现在计算过程中矩阵一定是 的形式。
所以现在问题转化为了计算型为 的矩阵快速幂。
考虑讲矩阵对角化,也就是找到一个矩阵 满足 是一个对角矩阵,也就是说:
给定 ,, 三个数,你需要和交互器博弈。
有一个长度为 的区间,你和交互器轮流操作。
每次操作,操作的一方选择一个没有被染黑并且长度在 和 之间的区间,把它染黑。
无法操作的一方寄了,另一方获胜。
每次你操作要输出两个数 和 ,表示你选择了区间 。
每次交互器操作会给你两个数 和 ,表示交互器选择了 ,若 则表示你获胜,如果 则表示你寄了。
只能说这题太妙了,场上 tourist 都没过。
首先考虑 的 DP, 表示从 到 的最短路径,转移很简单。
现在要考虑把这个 DP 优化到可以接受的时间复杂度内,考虑有以下性质。
对于 ,如果直接从 跳到 ,那么一定不会比经过区间最小值 跳两次更优。
@wsyear强无敌,模拟赛场切黑题。
给你一个长度为 的排列,Alice 先会把它分成 段。
然后 Bob 会把这 段重新排列,而每段内部位置不变。
Alice 希望这个序列字典序最小,而 Bob 希望这个序列字典序最大。
输出重排后的序列。
考虑贪心。
定义两个数列相似表示:其中一个数列所有元素同时加上一个数能变成另一个数列。
现在给你 个数列,求他们的最长相似子串。
很显然可以先作差分,这样就把问题转换为了求 个串的最长公共子序列。
这样就是一个字符串题了。我们发现字符集很大,所以考虑用 做。
我们先把所有的串拼接起来,中间加上不同的分割符。
然后进行后缀排序,此时又可以发现,只要在 上找到一个连续区间 ,使 在这个区间里都出现过,求 的最大值即可。