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

Posted ---学习ing---

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HihoCoder 1640 : 命名的烦恼(预处理)(好题)相关的知识,希望对你有一定的参考价值。

描述

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

小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 : 命名的烦恼(预处理)(好题)的主要内容,如果未能解决你的问题,请参考以下文章

HihoCoder1644 : 完美命名的烦恼([Offer收割]编程练习赛37)(有向图的一笔画问题||欧拉路)

hihocoder#1513 : 小Hi的烦恼 bitset

hihocoder 1513 小Hi的烦恼——bitset

hihocoder1513 小Hi的烦恼

hihocoder 1513 小Hi的烦恼 (bitset优化)

hihoCoder.1513.小Hi的烦恼(bitset 五维偏序)