摘要: 第一次,只用了简单地深搜,超时。于是自然就想到记忆搜索,用了就过啦。ints是一维数组,保存所有数字。segs是一位数组,保存所有数段的长度。ans是二维数组。ans[i][j]保存以第i个数字开始(但第i个数字不一定被取到,只是从第i个数字开始考虑),计算j,j+1...m段数段之和的最大值。本题要求的便是ans[1][1]。ans[i][j]=max{sum+ans[i+segs[j]][j+1],ans[i+1][j]}。max{}中的两个数的区别就在于,是否以第i个数作为第j个数段的起始数字。#include <iostream>using namespace std;co 阅读全文
posted @ 2012-08-14 21:55 peaceful 阅读(176) 评论(0) 推荐(0)