title: 一道华为的笔试题，讲一下思路？
desc: 给出两个字符串A，B。将A字符串转化为B字符串，转化共两种方式：删除连续的n个字符，一次操作费用为2。增加连续的n个字符（增加的什么由你决定），一次操作的费用为n2。求把A变为B最小费用。<br><br>输入：第一行输入一个正整数（1ltTlt10），表示有T组测试数据。<br>对于每组测试数据：<br>两行字符串A，B字符串长度不超过2000，字符仅包含小写字母。<br><br>输出：对于每组测试数据，输出一行一个整数，表示最小费用。<br>样例输入<br>2<br>dsafsadfadf<br>fdfd<br>aaaaaaaa<br>bbbbbbbb<br><br>样例输出：<br>7<br>12
topic: 算法
content: 经典的编辑距离的一个变种，动态规划问题，2000^3也差不多可以过，子问题是把前m个字符变成第二个字符串的前k个字符。略微优化一下也可以到2000^2，子问题是：前m个字符变成前k个字符，且：第一个字符串末位被删除未被删除第二个字符串末位是新添加不是新添加，合计四种子状态。第二种方法稍微写的具体一点： Fm，n，k - 将A0m变成B0n，且：
answerer_tags: 微博一般不上 http://weibo.com/hubo1016