夏夜、

心若平似镜、何题不AC。

2013年8月11日

UVA 11552 Fewest Flops DP

摘要: 题意:给一个正整数k和字符串s,s的长度是k的倍数,把s每k个字符分成一组,没组之间的字符可以任意重排,但组与组之间的顺序保持不变。任务是让重排后的新字符串s'的块最少,连续相同的字符组成一个块,比如abbbaa有三个块a、bbb、aa。首先每一组子串中相同的字符肯定要放在一起,然后问题就变成怎么排列这些子串中的块。用dp[i][fa]表示前i组且第i+1组的最左边的字符是fa+'a'的状态能得到的最少的块数那么状态的转移就是两层循环枚举这个第i组最左边和最右边应该放上什么字符,如果最右边和前一组的最左边一样,那么总块数就是加上(X-1)否则加上X,X表示这一组中字符的 阅读全文

posted @ 2013-08-11 09:39 BMan、 阅读(572) 评论(0) 推荐(0) 编辑

导航