codeforces 17C Balance 题意 给定一个串,字符集{'a', 'b', 'c'},操作是:选定相邻的两个字符,把其中一个变成另一个.可以做0次或者多次,问最后可以生成多少种,使得任意一种字符和其他字符的个数相差都不超过1. 题解 一个生成串压缩之后必定都是初始串的子序列,那么只要能枚举所有子序列,其他的很好搞定. 对于枚举的每个子序列,如果它是由初始串最早能生成的产生,那么肯定不会重. 基于这一点,f(i, a, b, c)表示当前由初始串1~i生成子序列,三个字符分别的个数…