摘要: 题意:给出两个串a,b,去构建另一个串,新构建出来的串要满足两个性质。一,在这个新的串中选出一个子集是a串,另外选出一个子串是b,满足这个条件后,要求这个串的长度最短。也可以这样说,ab两个串合并为一个新串,不改变a,b串本身的相对位置,但是要求新串长度最短。输出这样的新串的个数所以基本上可以想到,是和LCS有关的,再细想,那就是算出LCS的长度,然后ab两串长度之和减去LCS的长度,相当于ab两串合并为一串,消去他们的共有元素,那么新串中还是包含了a,b串的所有元素还是可以选出一部分子集来得到a或b串的。但问题时,怎么构建,另外有多少种构建方法,实际上构建的方案数就是最后新串的个数我们可以模 阅读全文
posted @ 2012-10-01 16:22 Titanium 阅读(718) 评论(0) 推荐(1) 编辑
摘要: 这道题目在poj和zoj上都有,分别是poj 1093 zoj 1147题意:输入行宽,输入一篇文章,多行,多单词,然后以一个空行来表示文章的结束,但输入的行宽为0的时候表示程序结束。一个单词的长度不会超过行宽。然后通过调整使整片文章看起来最和谐,其实的要求是,一行中,如果不止一个单词,那么行首和行尾都必须放单词,即行首和行尾不能有空格。特殊情况是一行只放一个单词,那么这个单词一定要放在行首,另外如果这个单词的长度小于行宽,那么这一行的badness(一个数值)就为500,如果这个单词刚好等于行宽即完全放满,那么badness为0。另外badness原本是一个数值要计算的,即两个单词之间的空. 阅读全文
posted @ 2012-10-01 00:08 Titanium 阅读(704) 评论(0) 推荐(0) 编辑