B. Array Walk

题意:给定一个长度为\(n\)的序列,从下标1开始,走\(k\)步,其中最多\(z\)步向左。每走到一个位置就取一次这个位置的数。问可以取到的最大总和是多少。

思路:考虑dp,\(dp[i][j]\)表示走了\(i\)步,\(j\)步为向左时的最大总和。则当\(dp[i][j]\)可以由走了\(i-1\)步、现在向右走以及走了\(i-1\)步、现在向左走这两个状态转移而来

C. Good String

题意:如果将一个字符串循环左移一位与循环右移一位后,得到的两个新字符串相等,则称该字符串为good string。给定一个字符串\(s\),问需要至少删除\(s\)中多少个字符,才能使其变成good string。

思路:容易发现,good string只有两种情况:1、整个字符串只有一种字符;2、字符串形如\(ababab...\),且长度为偶数。对于第一种情况,只需要找出出现次数最多的字符即可;对于第二种情况,因为字符只有10种,暴力枚举一下可以组成good string的两种字符就行。