码迷,mamicode.com
首页 > 其他好文 > 详细

HihoCoder 1640 : 命名的烦恼(预处理)(好题)

时间:2018-02-17 23:30:56      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:log   gpo   项目   有关   哪些   hihocoder   输入   hoc   整数   

描述

程序员常常需要给变量命名、给函数命名、给项目命名、给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼。

小Hi希望给新的项目起个拉风的名字。他希望这个名字可以包含N个关键字,并且总长度最短。例如包含关键字abcd、cdab和dabc的最短字符串是cdabcd。  

给定N个关键字,请你帮小Hi找到最短的包含所有关键字的字符串。输出这个字符串的长度。

输入

第一行包含一个整数N。(1 <= N <= 15)  

以下N行每行包含一个只包含小写字母的字符串。字符串长度不超过100。

输出

输出最短的长度。

样例输入

3  
abcd  
cdab  
dabc

样例输出

6

 

思路:DP,我们假设已经合并成字符串S,若把str加到末尾,不知道对齐哪一位最优,假设str长度为len,可能对其位数<len,也可能>=len,即覆盖掉前面一个str’。

所以,需要我们预处理包含关系的字符串,删去被包含的字符串,那么就可以DP了。

具体的,dp[2^15][15]表示使用的哪些字符串,最后一个串是哪个,当然,前提是删去了被包含的字符串。

 

HihoCoder 1640 : 命名的烦恼(预处理)(好题)

标签:log   gpo   项目   有关   哪些   hihocoder   输入   hoc   整数   

原文地址:https://www.cnblogs.com/hua-dong/p/8452306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!