摘要:题目链接 给你一个字符串, 然后把他想象成一个环。 从某一个地方断开,然后逆时针或顺时针, 都可以形成一个字符串, 求字典序最大的那种。 输出断开位置以及是顺时针还是逆时针。 如果两个一样, 输出位置靠前的一个, 如果位置也一样, 输出顺时针的那个。 显然是一个最大表示法。 麻烦的是逆时针的情况,
阅读全文
摘要:题目链接 求C(n, m)%p的值, n, m<=1e18, p = p1*p2*...pk. pi是质数。 先求出C(n, m)%pi的值, 然后这就是一个同余的式子。 用中国剩余定理求解。
阅读全文
摘要:题目链接 给一个字符x, 一个串s。 问你s中不同的子串的数量有多少, 子串必须包含至少一个字符x。 官方题解: 其实大概想一下, n-nxt[sa[i]]其实就是当前这个后缀中, 包含字符x的后缀串的数量。 n-sa[i]-height[i]就是和上一个串不重复的后缀的数量。
阅读全文
摘要:题目链接 给你一个数字梯形, 最上面一层m个数字, 然后m+1,......m+n-1个。 n是层数。 在每个位置, 可以向左下或右下走。然后让你从最顶端的m个数字开始, 走出m条路径, 使得路过的数字总和最大。 给你三种规则, 第一种是,m条路径完全不能相交。 第二种是可以在数字处相交。 第三种是
阅读全文
摘要:题目链接 给一个n*n的棋盘, 上面有障碍物, 有障碍物的不能放东西。然后往上面放马, 马不能互相攻击, 问最多可以放多少个马。 按x+y的奇偶来划分, 如果两个格子可以互相攻击, 就连一条权值为1的边。
阅读全文
摘要:题目链接 给n*m的方格, 每个格子有值{0, 1, 2}。 然后可以对格子进行操作, 如果选择了一个格子, 那么这个格子的值+2, 这个格子上下左右的格子+1, 并且模3。 问你将所有格子变成0的操作方法。 其实就是一个模3的方程组, 高斯消元就可以了。 不知道为什么昨天比赛就是想不到......
阅读全文
摘要:题目链接 有n堆苹果, 对于其中的每一堆的x个苹果, 它是放在一条线上的。 你每次可以对一堆苹果进行操作, 可以取y个, 1<=y<=x。 然后如果你是取的一条线上中间的苹果, 那么这一堆苹果将会变成两堆。 问你先手是否必胜。 简单的打一个sg表就可以了。 注意特判全都是1的情况。
阅读全文
摘要:题目链接 给n个灯和m个开关, 每个灯可以由若干个开关控制, 每个开关也可以控制若干个灯, 问你能否找到一种开关的状态, 使得所有的灯都亮。 将灯作为列, 然后把每个开关拆成两行, 开是一行, 关是一行。 然后跑一下就可以。 输出路径的话, 就是用一个vis数组记录一下哪些行被访问过。
阅读全文
摘要:题目链接 给n个点, 定义两点之间距离为|x1-x2|+|y1-y2|。 然后要选出k个城市建机场, 每个机场可以覆盖一个半径的距离。 求在选出点数不大于k的情况下, 这个半径距离的最大值。 二分半径, 然后距离小于等于半径的就连边, 然后跑重复覆盖。
阅读全文
摘要:题目链接 两种操作, 一种将x, y这个格子+w, 另一种给出左下和右上坐标, 问你这个矩形中值的和。
阅读全文
摘要:题目链接 dp[n] = sigma(a[i]*dp[n-i]), 给出a1.....an, 求dp[n]。 n为1e5. 这个式子的形式显然是一个卷积, 所以可以用fft来优化一下, 但是这样也是会超时的。 所以可以用cdq分治来优化。 cdq分治就是处理(l, mid)的时候, 将dp[l]..
阅读全文
摘要:题目链接 给2*n个珠子, n<=9, n个阴n个阳。 然后将它们弄成一个环, 阴阳交替。现在给你m个关系, 每个关系给出a, b。 如果阳a和阴b挨着, 那么a就会变暗。 问你最小变暗几个阳。 我们求出阴的所有全排列, 是9!, 因为形成一个环。 所以可以想象成一个珠子是固定不变的, 剩下n-1个
阅读全文
摘要:题目链接 一个n行20列的棋盘。 每一行有若干个棋子。 两人轮流操作, 每人每次可以将一个棋子向右移动一个位置, 如果它右边有一个棋子, 就跳过这个棋子, 如果有若干个棋子, 就将这若干个都跳过。 但是棋子不能移出边界。 如果没有办法移动了, 就算输。 问你先走的能否赢。 只有20列, 所以预处理出
阅读全文
摘要:题目链接 给n个数, 定义一个运算f[l,r] = gcd(al, al+1,....ar)。 然后给你m个询问, 每次询问给出l, r。 求出f[l, r]的值以及有多少对l', r' 使得f[l, r] = f[l', r']。 第一个很简单, 用倍增的思想就可以了。 然后是第二个, 我们枚举每
阅读全文
摘要:题目链接 给一个n*m的图, 图上有n个标号, n<=4, 然后有墙, 还有一个终点x。 每一步, 只能走某一个标号, 可以向四个方向走, 然后必须要碰到墙或者图的边界或者另一个标号才能停下来。 问你在t步之内能否使第一个标号到达终点。 因为有一个上限t。 所以直接bfs就可以, 感觉思路不是很难,
阅读全文
摘要:题目链接 给n个数, m个询问, 每个询问给出[l, r], 问你对于任意i, j。gcd(a[i], a[j]) L <= i < j <= R的和。 假设两个数的公约数有b1, b2, b2...bn, 那么这两个数的最大公约数就是phi[b1] + phi[b2] + phi[b3]...+p
阅读全文