您的位置:首页 > 大数据 > 人工智能

HDU 2746 ——String painter

2016-05-18 21:36 465 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2476
   这道题,大多数博客都是一种解法:就是先得到无颜色的字符串涂色为所需字符串的最小次数(1),然后基于此去找当原先的字符串并不是无颜色的而是有固定颜色时的最小值(2)。怎样找呢?因为字符串原先已有颜色,所以(1)中有许多涂色是不必要的,它的最小值并不是真正的最小值,故只需在(1)的基础上“做减法”,找到真正的最小值就好了。

   但是,其实这样子做是不对的,因为(1)的情况下涂色的最小次数是不一定大于(2)的,即如果只是想着在(1)的基础上做减法是可能带来的错误的,可能要通过加法来修正(1)的最小次数!

   比如:当第一个字符串为ab,第二个字符串为cc时,就会出现错误:正确答案为2,但是上面的做法得到的答案却是1,因为无颜色的字符串涂色成cc当然只需要涂色1次,然后我们在(1)的基础上试图做减法,当然不可能得到正确答案2!

   但是因为HDU这道题的测试数据没有能够发现该错误,所以才会有一大堆博客在介绍这种方法。。。:)

   这种做法的题解一大堆。。都是错在了这里。。它们中的几篇题解链接如下:

       http://blog.csdn.net/libin56842/article/details/9708807

       http://blog.csdn.net/a601025382s/article/details/37737303

  然而,正确的dp方法我还在思考中。。。未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: