Codeforces 题解 1553B [Reverse String]

【题目大意】 给定字符串 s,给出一个由 s 生成新字符串 t 的方法 M:将指针 p 放在 s 的某一位上,然后将 p 向右移动若干次,再向左移动若干次(p 始终指向 s 中的字符),p 指到的所有字符排列成一个新字符串 t。例如 s 为 abcdef,p 初始为 2(即指向 c),向右移动 2 次,向左移动 3 次,生成的 t 为 cdedcb。现给出若干组 s 和 t,判断 t 能否由 s 使用 M 方法生成。

【数据范围】 组数 $q \le 500$, $|s| \le 500$,$sum(|s|) \le 500$

Read more

Codeforces 题解 1557A [Ezzat and Two Subsequences]

【题目大意】 给定 n 个数字组成的数组(可为负),将其分为两组非空的子数组 a, b,定义 f(x) 为数组 x 的平均值,求 f(a) + f(b) 的最大值。

【数据范围】 组数 $t \le 10^3$, $n \le 10^5$,$|a_i|\le 10^9$,$sum(n)\le 3\cdot 10^5$

Read more

Codeforces 题解 1557B [Moamen and k-subarrays]

【题目大意】 给出 n 个数组成的数组 a,记操作 M 为:将 a 切分为 k 份,这 k 份任意排列,组成序列 b。若存在某种操作 M,使得 b 单调不减,则输出 Yes,否则 No

【数据范围】 组数 $t \le 10^3$,$k \le n \le 10^5$,$|a_i| \le 10^9$ 且 $a_i$ 互不相等,$\sum n \le 3\cdot 10^5$

Read more