Educational Codeforces Round 123 (Rated for Div. 2)(A-D)

A. Doors and Keys

判读大写字母出现前是否出现过对应的小写字母即可。

B. Anti-Fibonacci Permutation

题意:
构造 n 个满足要求的排列( i ≥ 3 , p i − 2 + p i − 1 ≠ p i i \geq 3, p_{i-2}+p_{i-1} \ne p_i i≥3,pi−2​+pi−1​​=pi​)。
构造方法:
把 2 到 n 降序放置,把 1 插入这 n-1 个数的不同位置即可。
eg:当 n = 5 时,有:

5 4 3 2 1
5 4 3 1 2
5 4 1 3 2
5 1 4 3 2
1 5 4 3 2

C. Increase Subarray Sums

题意:
给一个大小为 n 的数组,其价值为 m a x ( 0 , m a x ( a i + 0 + … + a i + j ) ) ( 1 ≤ i ≤ i + j ≤ n ) max(0, max(a_{i+0} + … + a_{i+j})) (1 \leq i \leq i+j \leq n) max(0,max(ai+0​+…+ai+j​))(1≤i≤i+j≤n)。
对于任意的 k ( 0 ≤ k ≤ n 0 \leq k \leq n 0≤k≤n),选择 k 个不同的位置,给对应的元素加 x。依次输出操作后的数组的价值。
思路:
贪心,要增加的 k 个数交给的区间即可。
定义 f i f_i fi​ 表示数组长度为 i 的连续子序列和的最大值,则 r e s = f i + m i n ( i , k ) ∗ x res = f_i + min(i, k) * x res=fi​+min(i,k)∗x。

D. Cross Coloring

题意:
给一个 n * m 的网格进行 q 次染色。
第 i 次染色将在 k 中颜色中任选一种,染给第 x i x_i xi​ 行和第 y i y_i yi​列。
问最后将得到多少种染色结果。
思路:
q 次操作结束后,没有被完全覆盖的操作对应的格子的颜色可以在 k 个颜色中任选。统计有几次操作不会被完全覆盖即可。
后边的操作一定不会被前边的操作覆盖。倒着统计 q 次颜色,对于第 i 次染色的行或列没有被颜色时,本次操作染色的格子将不会被完全覆盖。注意,当行或列都被染过后就不需要统计。

在 2 * 10 的格子中,最后两次操作分别染第一行和第二行,这时全部的行都被染色,前 q-2 次染色结果一定被覆盖。

设:没有被完全覆盖的操作数为 c n t , r e s = k c n t cnt, res = k ^{cnt} cnt,res=kcnt

E. Expand the Path

题意:
有一个 n * n 的网格和一个机器人,机器人在 (1,1)并且只会根据指令移动。

  • 指令D:x++
  • 指令R:y++
    给出一个指令串s(只饱含D 和 R),在机器人移动前可以对指令串进行若干次操作(选择一个指令,进行复制。即 D 变为DD,R 变为 RR),问机器人可以走过的格子数是多少。

分析:
Educational Codeforces Round 123 (Rated for Div. 2)(A-D)

上一篇:【笔记】拉格朗日插值还原系数表达式


下一篇:CentOS6网络yum源停止维护,配置本地yum源