摘自《编程珠玑》15.2节可在此处查看C代码:http://www.cs.bell-labs.com/cm/cs/pearls/longdup.c当我使用后缀数组在Python中实现它时:example=open("iliad10.txt").read()defcomlen(p,q):i=0forxinzip(p,q):ifx[0]==x[1]:i+=1else:breakreturnisuffix_list=[]example_len=len(example)idx=list(range(example_len))idx.sort(cmp=lambdaa,b:cmp(example[
题目链接:http://poj.org/problem?id=1260具体思路:首先,所需珍珠的数目是固定的,而且每种珍珠所需的数目,可以使用比此种珍珠珍贵(就是价格高的)的珍珠所替代,其次,题目所给珍珠的顺序是按价格由低到高给的,我们可以发现一个规律,珍珠不能隔着种类交换,就是说假设一共三类珍珠,第一种如果需要用第三种替代的话,那么第二种也必须被第三种替代,如果不这么做的话那么第二种需要单独支付额外费用,那么此时,显然如果把第一种用第二种替代更合适,花费更少。这只是说明了珍珠不能隔着替换。我们可以求前i种珍珠所花费的最少费用,那么第i种珍珠所花费的费用可以有多种选择,我们需要求出多种选择中所
题目链接:http://poj.org/problem?id=1260具体思路:首先,所需珍珠的数目是固定的,而且每种珍珠所需的数目,可以使用比此种珍珠珍贵(就是价格高的)的珍珠所替代,其次,题目所给珍珠的顺序是按价格由低到高给的,我们可以发现一个规律,珍珠不能隔着种类交换,就是说假设一共三类珍珠,第一种如果需要用第三种替代的话,那么第二种也必须被第三种替代,如果不这么做的话那么第二种需要单独支付额外费用,那么此时,显然如果把第一种用第二种替代更合适,花费更少。这只是说明了珍珠不能隔着替换。我们可以求前i种珍珠所花费的最少费用,那么第i种珍珠所花费的费用可以有多种选择,我们需要求出多种选择中所